From fcd1117331f8bbd9560d24798ef1aa05fa6acc77 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Thu, 8 Jun 2017 17:01:05 +0200 Subject: [PATCH 1/2] [IMP] use PyPDF2 if possible --- report_qweb_pdf_watermark/README.rst | 5 +++++ report_qweb_pdf_watermark/__openerp__.py | 2 +- report_qweb_pdf_watermark/models/report.py | 14 ++++++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/report_qweb_pdf_watermark/README.rst b/report_qweb_pdf_watermark/README.rst index 35c63a05..d0a7caaf 100644 --- a/report_qweb_pdf_watermark/README.rst +++ b/report_qweb_pdf_watermark/README.rst @@ -10,6 +10,11 @@ This module was written to add watermarks (backgrounds) to PDF reports. This is necessary because of the way wkhtmltopdf handles headers and footers, in the current versions if quite impossible to have a background for the complete page. +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/__openerp__.py b/report_qweb_pdf_watermark/__openerp__.py index 74ccecf9..9a63b1ba 100644 --- a/report_qweb_pdf_watermark/__openerp__.py +++ b/report_qweb_pdf_watermark/__openerp__.py @@ -3,7 +3,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { "name": "Pdf watermark", - "version": "9.0.1.0.0", + "version": "9.0.1.0.1", "author": "Therp BV,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Reporting", diff --git a/report_qweb_pdf_watermark/models/report.py b/report_qweb_pdf_watermark/models/report.py index acb9aff6..3e033157 100644 --- a/report_qweb_pdf_watermark/models/report.py +++ b/report_qweb_pdf_watermark/models/report.py @@ -3,10 +3,20 @@ # 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 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 openerp import api, models, tools logger = getLogger(__name__) From c0252f7ce6bec407fcb5eadc814469562f866b7f Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Tue, 18 Jul 2017 09:38:56 +0200 Subject: [PATCH 2/2] [UPD] build environment --- .travis.yml | 12 ++---------- .../tests/test_report_qweb_pdf_watermark.py | 6 ++++-- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 030df2db..d25f50b7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,12 @@ sudo: false +dist: trusty cache: pip addons: - sources: - - pov-wkhtmltopdf apt: packages: - expect-dev # provides unbuffer utility - python-lxml # because pip installation is slow - - wkhtmltopdf # report tests language: python @@ -19,6 +17,7 @@ env: global: - VERSION="9.0" TESTS="0" LINT_CHECK="0" TRANSIFEX="0" - TRANSIFEX_USER='transbot@odoo-community.org' + - WKHTMLTOPDF_VERSION=0.12.4 - secure: NUsXwVrMntcqge1ozKW+DSkP7dq+Rla6JVvFF2c89/g+zJaIqQRi8EQBLoqNwCdMk+rjpQeZt/JPELjH+EzPcmGddhDxOgVB3nUT9LvFXGCHF+NjmHXqyba4tuc7BnpG1WDD+rSlxVCt1aIjNIhhaZ4ic0rCWpKNYu/yFTsmChc= matrix: - LINT_CHECK="1" @@ -26,13 +25,6 @@ env: - TESTS="1" ODOO_REPO="odoo/odoo" - TESTS="1" ODOO_REPO="OCA/OCB" -virtualenv: - system_site_packages: true - -before_install: - - "export DISPLAY=:99.0" - - "sh -e /etc/init.d/xvfb start" - install: - git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools - export PATH=${HOME}/maintainer-quality-tools/travis:${PATH} diff --git a/report_qweb_pdf_watermark/tests/test_report_qweb_pdf_watermark.py b/report_qweb_pdf_watermark/tests/test_report_qweb_pdf_watermark.py index 7525a95a..fbde1c26 100644 --- a/report_qweb_pdf_watermark/tests/test_report_qweb_pdf_watermark.py +++ b/report_qweb_pdf_watermark/tests/test_report_qweb_pdf_watermark.py @@ -1,11 +1,13 @@ # -*- coding: utf-8 -*- # © 2016 Therp BV # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp.tests.common import TransactionCase +from PIL import Image +from openerp.tests.common import HttpCase -class TestReportQwebPdfWatermark(TransactionCase): +class TestReportQwebPdfWatermark(HttpCase): def test_report_qweb_pdf_watermark(self): + Image.init() # with our image, we have three self._test_report_images(3)