Ticket #1076: pagetopdf.py.diff

File pagetopdf.py.diff, 1.7 kB (added by tonin, 2 years ago)
  • pagetopdf/pagetopdf.py

    old new  
    1616 
    1717    def convert_content(self, req, input_type, source, output_type): 
    1818        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') 
    2021        page = wiki_to_html(source, self.env, req).encode(codepage) 
    2122        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>') 
    2326        os.close(hfile) 
    2427        pfile, pfilename = mkstemp('tracpdf') 
    2528        os.close(pfile) 
    2629        os.environ["HTMLDOC_NOCGI"] = 'yes' 
    2730        htmldoc_args = { 'webpage': None, 'format': 'pdf14', 'left': '1.5cm', 
    2831                         'right': '1.5cm', 'top': '1.5cm', 'bottom': '1.5cm', 
    29                          'charset': codepage.replace('iso-', '')
     32                         'charset': codepage 
    3033        htmldoc_args.update(dict(self.env.config.options('pagetopdf'))) 
    3134        args_string = ' '.join(['--%s %s' % (arg, value or '') for arg, value 
    3235                                in htmldoc_args.iteritems()])