Browse Source

[FIX] Fix Watermark from PNG

pull/144/head
etobella 7 years ago
parent
commit
6dacecae08
  1. 8
      .travis.yml
  2. 3
      report_qweb_pdf_watermark/__manifest__.py
  3. 7
      report_qweb_pdf_watermark/models/report.py

8
.travis.yml

@ -3,9 +3,17 @@ cache: pip
addons: addons:
apt: apt:
sources:
- pov-wkhtmltopdf
packages: packages:
- expect-dev # provides unbuffer utility - expect-dev # provides unbuffer utility
- python-lxml # because pip installation is slow - python-lxml # because pip installation is slow
- wkhtmltopdf # only add if needed and check the before_install section below
# set up an X server to run wkhtmltopdf.
before_install:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
language: python language: python

3
report_qweb_pdf_watermark/__manifest__.py

@ -4,7 +4,8 @@
{ {
"name": "Pdf watermark", "name": "Pdf watermark",
"version": "10.0.1.0.0", "version": "10.0.1.0.0",
"author": "Therp BV,Odoo Community Association (OCA)",
"author": "Therp BV, "
"Odoo Community Association (OCA)",
"license": "AGPL-3", "license": "AGPL-3",
"category": "Reporting", "category": "Reporting",
"summary": "Add watermarks to your QWEB PDF reports", "summary": "Add watermarks to your QWEB PDF reports",

7
report_qweb_pdf_watermark/models/report.py

@ -8,6 +8,12 @@ from pyPdf.utils import PdfReadError
from PIL import Image from PIL import Image
from StringIO import StringIO from StringIO import StringIO
from odoo import api, models, tools 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
logger = getLogger(__name__) logger = getLogger(__name__)
@ -40,6 +46,7 @@ class Report(models.Model):
except PdfReadError: except PdfReadError:
# let's see if we can convert this with pillow # let's see if we can convert this with pillow
try: try:
Image.init()
image = Image.open(StringIO(watermark)) image = Image.open(StringIO(watermark))
pdf_buffer = StringIO() pdf_buffer = StringIO()
if image.mode != 'RGB': if image.mode != 'RGB':

Loading…
Cancel
Save