openerp-community-reviewer team mailing list archive
-
openerp-community-reviewer team
-
Mailing list archive
-
Message #03150
lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:report-print-send
bruno bottacini has proposed merging lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:report-print-send.
Requested reviews:
Report Printing and Sending Core Editors (report-print-send-core-editors)
For more details, see:
https://code.launchpad.net/~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size/+merge/202892
add a module that permit in report_webkit to use custom paper size.
i used the GrupoCITEC patch
lp:~grupocitec/ocb-addons/report_webkit_custom_paper_size
--
https://code.launchpad.net/~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size/+merge/202892
Your team Report Printing and Sending Core Editors is requested to review the proposed merge of lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:report-print-send.
=== added directory 'report_webkit_custom_paper_size'
=== added file 'report_webkit_custom_paper_size/__init__.py'
--- report_webkit_custom_paper_size/__init__.py 1970-01-01 00:00:00 +0000
+++ report_webkit_custom_paper_size/__init__.py 2014-01-23 16:44:31 +0000
@@ -0,0 +1,106 @@
+import header
+
+import openerp
+import tempfile
+import os
+import time
+import logging
+import subprocess
+from openerp.tools.translate import _
+
+
+_logger = logging.getLogger(__name__)
+
+def generate_pdf(self, comm_path, report_xml, header, footer, html_list, webkit_header=False):
+ """Call webkit in order to generate pdf"""
+ if not webkit_header:
+ webkit_header = report_xml.webkit_header
+ tmp_dir = tempfile.gettempdir()
+ out_filename = tempfile.mktemp(suffix=".pdf", prefix="webkit.tmp.")
+ file_to_del = [out_filename]
+ if comm_path:
+ command = [comm_path]
+ else:
+ command = ['wkhtmltopdf']
+
+ command.append('--quiet')
+ # default to UTF-8 encoding. Use <meta charset="latin-1"> to override.
+ command.extend(['--encoding', 'utf-8'])
+ if header :
+ head_file = file( os.path.join(
+ tmp_dir,
+ str(time.time()) + '.head.html'
+ ),
+ 'w'
+ )
+ head_file.write(header)
+ head_file.close()
+ file_to_del.append(head_file.name)
+ command.extend(['--header-html', head_file.name])
+ if footer :
+ foot_file = file( os.path.join(
+ tmp_dir,
+ str(time.time()) + '.foot.html'
+ ),
+ 'w'
+ )
+ foot_file.write(footer)
+ foot_file.close()
+ file_to_del.append(foot_file.name)
+ command.extend(['--footer-html', foot_file.name])
+
+ if webkit_header.margin_top :
+ command.extend(['--margin-top', str(webkit_header.margin_top).replace(',', '.')])
+ if webkit_header.margin_bottom :
+ command.extend(['--margin-bottom', str(webkit_header.margin_bottom).replace(',', '.')])
+ if webkit_header.margin_left :
+ command.extend(['--margin-left', str(webkit_header.margin_left).replace(',', '.')])
+ if webkit_header.margin_right :
+ command.extend(['--margin-right', str(webkit_header.margin_right).replace(',', '.')])
+ if webkit_header.orientation :
+ command.extend(['--orientation', str(webkit_header.orientation).replace(',', '.')])
+ if webkit_header.format :
+ if webkit_header.format=='custom':
+ command.extend(['--page-width', str(webkit_header.paper_width).replace(',', '.')])
+ command.extend(['--page-height', str(webkit_header.paper_height).replace(',', '.')])
+ else:
+ command.extend(['--page-size', str(webkit_header.format).replace(',', '.')])
+ count = 0
+ for html in html_list :
+ html_file = file(os.path.join(tmp_dir, str(time.time()) + str(count) +'.body.html'), 'w')
+ count += 1
+ html_file.write(html)
+ html_file.close()
+ file_to_del.append(html_file.name)
+ command.append(html_file.name)
+ command.append(out_filename)
+ stderr_fd, stderr_path = tempfile.mkstemp(text=True)
+ file_to_del.append(stderr_path)
+ try:
+ status = subprocess.call(command, stderr=stderr_fd)
+ os.close(stderr_fd) # ensure flush before reading
+ stderr_fd = None # avoid closing again in finally block
+ fobj = open(stderr_path, 'r')
+ error_message = fobj.read()
+ fobj.close()
+ if not error_message:
+ error_message = _('No diagnosis message was provided')
+ else:
+ error_message = _('The following diagnosis message was provided:\n') + error_message
+ if status :
+ raise except_osv(_('Webkit error' ),
+ _("The command 'wkhtmltopdf' failed with error code = %s. Message: %s") % (status, error_message))
+ pdf_file = open(out_filename, 'rb')
+ pdf = pdf_file.read()
+ pdf_file.close()
+ finally:
+ if stderr_fd is not None:
+ os.close(stderr_fd)
+ for f_to_del in file_to_del:
+ try:
+ os.unlink(f_to_del)
+ except (OSError, IOError), exc:
+ _logger.error('cannot remove file %s: %s', f_to_del, exc)
+ return pdf
+
+openerp.addons.report_webkit.webkit_report.WebKitParser.generate_pdf = generate_pdf
=== added file 'report_webkit_custom_paper_size/__openerp__.py'
--- report_webkit_custom_paper_size/__openerp__.py 1970-01-01 00:00:00 +0000
+++ report_webkit_custom_paper_size/__openerp__.py 2014-01-23 16:44:31 +0000
@@ -0,0 +1,19 @@
+{
+ "name" : "Report Webkit Custom Paper Size ",
+ "version" : "1.0",
+ "depends" : ["report_webkit"],
+ "author" : "Bruno Bottacini using the GrupoCITEC patch",
+ 'complexity': "easy",
+ "description": """
+ """,
+ "website" : "http://www.dorella.com",
+ 'license': 'AGPL-3',
+ "category" : "Reporting",
+ "init_xml" : [],
+ "demo_xml" : [],
+ "data" : [ 'header_view.xml',
+ ],
+ "test" : [],
+ "auto_install": False,
+ "installable": True,
+}
=== added file 'report_webkit_custom_paper_size/header.py'
--- report_webkit_custom_paper_size/header.py 1970-01-01 00:00:00 +0000
+++ report_webkit_custom_paper_size/header.py 2014-01-23 16:44:31 +0000
@@ -0,0 +1,47 @@
+from openerp.osv import orm, fields
+
+class HeaderHTML(orm.Model):
+ _inherit = "ir.header_webkit"
+ _columns = {
+ 'format': fields.selection(
+ [
+ ('A0' ,'A0 5 841 x 1189 mm'),
+ ('A1' ,'A1 6 594 x 841 mm'),
+ ('A2' ,'A2 7 420 x 594 mm'),
+ ('A3' ,'A3 8 297 x 420 mm'),
+ ('A4' ,'A4 0 210 x 297 mm, 8.26 x 11.69 inches'),
+ ('A5' ,'A5 9 148 x 210 mm'),
+ ('A6' ,'A6 10 105 x 148 mm'),
+ ('A7' ,'A7 11 74 x 105 mm'),
+ ('A8' ,'A8 12 52 x 74 mm'),
+ ('A9' ,'A9 13 37 x 52 mm'),
+ ('B0' ,'B0 14 1000 x 1414 mm'),
+ ('B1' ,'B1 15 707 x 1000 mm'),
+ ('B2' ,'B2 17 500 x 707 mm'),
+ ('B3' ,'B3 18 353 x 500 mm'),
+ ('B4' ,'B4 19 250 x 353 mm'),
+ ('B5' ,'B5 1 176 x 250 mm, 6.93 x 9.84 inches'),
+ ('B6' ,'B6 20 125 x 176 mm'),
+ ('B7' ,'B7 21 88 x 125 mm'),
+ ('B8' ,'B8 22 62 x 88 mm'),
+ ('B9' ,'B9 23 33 x 62 mm'),
+ ('B10',':B10 16 31 x 44 mm'),
+ ('C5E','C5E 24 163 x 229 mm'),
+ ('Comm10E','Comm10E 25 105 x 241 mm, U.S. Common 10 Envelope'),
+ ('DLE', 'DLE 26 110 x 220 mm'),
+ ('Executive','Executive 4 7.5 x 10 inches, 190.5 x 254 mm'),
+ ('Folio','Folio 27 210 x 330 mm'),
+ ('Ledger', 'Ledger 28 431.8 x 279.4 mm'),
+ ('Legal', 'Legal 3 8.5 x 14 inches, 215.9 x 355.6 mm'),
+ ('Letter','Letter 2 8.5 x 11 inches, 215.9 x 279.4 mm'),
+ ('Tabloid', 'Tabloid 29 279.4 x 431.8 mm'),
+ ('custom', 'Custom Paper Size'),
+ ],
+ 'Paper size',
+ required=True,
+ help="Select Proper Paper size"
+ ),
+ 'paper_width': fields.integer('Paper Width (mm)'),
+ 'paper_height': fields.integer('Paper Height (mm)'),
+ }
+
=== added file 'report_webkit_custom_paper_size/header_view.xml'
--- report_webkit_custom_paper_size/header_view.xml 1970-01-01 00:00:00 +0000
+++ report_webkit_custom_paper_size/header_view.xml 2014-01-23 16:44:31 +0000
@@ -0,0 +1,17 @@
+<openerp>
+ <data>
+
+ <record model="ir.ui.view" id="header_webkit_custom_paper_size">
+ <field name="name">res.company.header.html.custom.paper.size</field>
+ <field name="model">ir.header_webkit</field>
+ <field name="inherit_id" ref="report_webkit.header_webkit"/>
+ <field name="arch" type="xml">
+ <field name="format" position="after">
+ <field name="paper_width" attrs="{'invisible': [('format', '!=', 'custom')], 'required': [('format', '=', 'custom')]}" />
+ <field name="paper_height" attrs="{'invisible': [('format', '!=', 'custom')], 'required': [('format', '=', 'custom')]}" />
+ </field>
+ </field>
+ </record>
+
+ </data>
+</openerp>
Follow ups
-
Re: [Merge] lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:~report-print-send-core-editors/report-print-send/7.0
From: Lionel Sausin - Numérigraphe, 2014-07-04
-
Re: [Merge] lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:~report-print-send-core-editors/report-print-send/7.0
From: Yannick Vaucher @ Camptocamp, 2014-07-02
-
Re: [Merge] lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:report-print-send
From: Lionel Sausin - Numérigraphe, 2014-06-02
-
Re: [Merge] lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:report-print-send
From: Lionel Sausin - Numérigraphe, 2014-05-16
-
Re: [Merge] lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:report-print-send
From: Yannick Vaucher @ Camptocamp, 2014-05-16
-
Re: [Merge] lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:report-print-send
From: Lionel Sausin - Numérigraphe, 2014-05-15
-
Re: [Merge] lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:report-print-send
From: Lionel Sausin - Numérigraphe, 2014-05-14
-
Re: [Merge] lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:report-print-send
From: Lionel Sausin - Numérigraphe, 2014-05-14
-
Re: [Merge] lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:report-print-send
From: Lionel Sausin - Numérigraphe, 2014-05-14
-
Re: [Merge] lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:report-print-send
From: Lionel Sausin - Numérigraphe, 2014-05-14
-
Re: [Merge] lp:~bruno-bottacini/report-print-send/7.0-report_webkit_custom_paper_size into lp:report-print-send
From: Lionel Sausin - Numérigraphe, 2014-04-10