From f205bfcd4ddcf3f1d8676ee87ee0b29941bd6773 Mon Sep 17 00:00:00 2001 From: Mehul Patel Date: Mon, 14 Aug 2017 14:23:50 +0200 Subject: [PATCH] [ADD] tools: utility to merge pdf files --- odoo/tools/__init__.py | 1 + odoo/tools/pdf.py | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 odoo/tools/pdf.py diff --git a/odoo/tools/__init__.py b/odoo/tools/__init__.py index ab9b57b348c..4eb84a9de16 100644 --- a/odoo/tools/__init__.py +++ b/odoo/tools/__init__.py @@ -4,6 +4,7 @@ import copy from . import win32 from . import appdirs +from . import pdf from .config import config from .misc import * from .convert import * diff --git a/odoo/tools/pdf.py b/odoo/tools/pdf.py new file mode 100644 index 00000000000..7f6f244ce45 --- /dev/null +++ b/odoo/tools/pdf.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from cStringIO import StringIO +from PyPDF2 import PdfFileWriter, PdfFileReader + + +def merge_pdf(pdf_data): + ''' Merge a collection of PDF documents in one + :param list pdf_data: a list of PDF datastrings + :return: a unique merged PDF datastring + ''' + writer = PdfFileWriter() + for document in pdf_data: + reader = PdfFileReader(StringIO(document), strict=False) + for page in range(0, reader.getNumPages()): + writer.addPage(reader.getPage(page)) + _buffer = StringIO() + writer.write(_buffer) + merged_pdf = _buffer.getvalue() + _buffer.close() + return merged_pdf