From 79546f7be534a13a002f6aabeadf2fd0cbd131e9 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Thu, 8 Jun 2017 17:01:05 +0200 Subject: [PATCH] [IMP] use PyPDF2 if possible --- report_qweb_pdf_watermark/README.rst | 5 +++++ report_qweb_pdf_watermark/__manifest__.py | 2 +- report_qweb_pdf_watermark/models/report.py | 20 +++++++++++++------- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/report_qweb_pdf_watermark/README.rst b/report_qweb_pdf_watermark/README.rst index cac6f764..07f681b1 100644 --- a/report_qweb_pdf_watermark/README.rst +++ b/report_qweb_pdf_watermark/README.rst @@ -8,6 +8,11 @@ Pdf watermark This module was written to add watermarks (backgrounds) to PDF reports. Because of the way wkhtmltopdf handles headers and footers in the current versions, it is quite impossible to have a background for the complete page using HTML and CSS. That is why this module inserts the image at the PDF level. +Installation +============ + +This module works out of the box, but is faster if you install the python library PyPDF2. + Usage ===== diff --git a/report_qweb_pdf_watermark/__manifest__.py b/report_qweb_pdf_watermark/__manifest__.py index 95b4c536..d11b8493 100644 --- a/report_qweb_pdf_watermark/__manifest__.py +++ b/report_qweb_pdf_watermark/__manifest__.py @@ -3,7 +3,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { "name": "Pdf watermark", - "version": "10.0.1.0.0", + "version": "10.0.1.0.1", "author": "Therp BV, " "Odoo Community Association (OCA)", "license": "AGPL-3", diff --git a/report_qweb_pdf_watermark/models/report.py b/report_qweb_pdf_watermark/models/report.py index 82d0d311..cc89490b 100644 --- a/report_qweb_pdf_watermark/models/report.py +++ b/report_qweb_pdf_watermark/models/report.py @@ -3,16 +3,22 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from base64 import b64decode from logging import getLogger -from pyPdf import PdfFileWriter, PdfFileReader -from pyPdf.utils import PdfReadError from PIL import Image from StringIO import StringIO -from odoo import api, models, tools -from PIL import PdfImagePlugin # flake8: noqa -# PdfImagePlugin must be loaded in order to work PNG to PDF transformation -# This issue is related to Pillow creation, as can be seen in its source code: -# https://github.com/python-pillow/Pillow/blob/master/PIL/PdfImagePlugin.py +from pyPdf import PdfFileWriter, PdfFileReader +from pyPdf.utils import PdfReadError +try: + from PyPDF2 import PdfFileWriter, PdfFileReader # pylint: disable=W0404 + from PyPDF2.utils import PdfReadError # pylint: disable=W0404 +except ImportError: + pass +try: + # we need this to be sure PIL has loaded PDF support + from PIL import PdfImagePlugin # noqa: F401 +except ImportError: + pass +from odoo import api, models, tools logger = getLogger(__name__)