Ticket #1076: pagetopdf.py.diff
| File pagetopdf.py.diff, 1.7 kB (added by tonin, 2 years ago) |
|---|
-
pagetopdf/pagetopdf.py
old new 16 16 17 17 def convert_content(self, req, input_type, source, output_type): 18 18 hfile, hfilename = mkstemp('tracpdf') 19 codepage = self.env.config.get('trac', 'default_charset', 0) 19 # htmldoc doesn't support utf-8, we need to use some other input encoding 20 codepage = self.config.get('pagetopdf', 'charset', 'iso-8859-1') 20 21 page = wiki_to_html(source, self.env, req).encode(codepage) 21 22 page = re.sub('<img src="(?!\w+://)', '<img src="%s://%s:%d' % (req.scheme, req.server_name, req.server_port), page) 22 os.write(hfile, '<html><body>' + page + '</body></html>') 23 self.env.log.debug('HTML output for PageToPDF charset: %s' % codepage) 24 meta = ('<meta http-equiv="Content-Type" content="text/html; charset=%s"/>' % codepage).encode(codepage) 25 os.write(hfile, '<html><head>' + meta + '</head><body>' + page + '</body></html>') 23 26 os.close(hfile) 24 27 pfile, pfilename = mkstemp('tracpdf') 25 28 os.close(pfile) 26 29 os.environ["HTMLDOC_NOCGI"] = 'yes' 27 30 htmldoc_args = { 'webpage': None, 'format': 'pdf14', 'left': '1.5cm', 28 31 'right': '1.5cm', 'top': '1.5cm', 'bottom': '1.5cm', 29 'charset': codepage .replace('iso-', '')}32 'charset': codepage } 30 33 htmldoc_args.update(dict(self.env.config.options('pagetopdf'))) 31 34 args_string = ' '.join(['--%s %s' % (arg, value or '') for arg, value 32 35 in htmldoc_args.iteritems()])
