pisaDocument(fin, fout, encoding='utf-8', debug=True) fin.close() fout.close() return dict(output_filename=output_filename, status=0, output='') class HTML2PDF(BaseConverter): name = 'pdf-pisa' output_format = 'pdf' visible_name = 'PDF (PISA)' visible = True @staticmethod def available(): return True def convert(self, output_filename=None, **options): result = html2pdf(self.filename, output_filename, **options) return result from registry import registerConverter registerConverter(HTML2PDF)
if value == '0': node.attrib[attr] = '0em' if get('page-break-after') == 'always': del node.attrib['page-break-after'] node.attrib['break-after'] = 'page' if get('text-transform'): del node.attrib['text-transform'] value = get('white-space') if value == 'pre': del node.attrib['white-space'] node.text = '\n' + node.text.lstrip() for k,v in {'white-space-treatment' : 'preserve', 'white-space-collapse' : 'false', 'wrap-option' : 'no-wrap', 'linefeed-treatment' : 'preserve' }.items(): node.attrib[k] = v fo_text = tostring(E.getroot()) fo_text = fo_text.replace('<ns0:block ' , '<ns0:block margin-top="0" margin-bottom="0" ') # avoid a linebreak through <li><p> (XFC) # fo_text = fo_text.replace('<ns0:block/>', '') # causes a crash with XINC fo_text = fo_text.replace('<ns0:block margin-top="0" margin-bottom="0" />', '') file(fo_filename, 'wb').write(fo_text) return fo_filename from registry import registerConverter registerConverter(HTML2FO)
name = 'ebook-calibre' output_format = 'epub' visible_name = 'EPUB (Calibre)' visible = True @staticmethod def available(): return calibre_available def convert(self, output_filename=None, **calibre_options): # check for commandlineoptions.txt file cmdopts = '' cmdopts_filename = os.path.join(os.path.dirname(self.filename), 'commandlineoptions.txt') if os.path.exists(cmdopts_filename): cmdopts = file(cmdopts_filename).read() cmdopts = cmdopts % dict(WORKDIR=os.path.dirname(self.filename)) tidy_filename = tidyhtml(self.filename, self.encoding) result = html2calibre(tidy_filename, output_filename, cmdopts=cmdopts, **calibre_options) os.unlink(tidy_filename) return result from registry import registerConverter registerConverter(HTML2Calibre) if __name__ == '__main__': print html2calibre(sys.argv[1], 'output.epub')
visible = True @staticmethod def available(): return calibre_available def convert(self, output_filename=None, **calibre_options): # check for commandlineoptions.txt file cmdopts = '' cmdopts_filename = os.path.join(os.path.dirname(self.filename), 'commandlineoptions.txt') if os.path.exists(cmdopts_filename): cmdopts = file(cmdopts_filename).read() cmdopts = cmdopts % dict(WORKDIR=os.path.dirname(self.filename)) tidy_filename = tidyhtml(self.filename, self.encoding) result = html2calibre(tidy_filename, output_filename, cmdopts=cmdopts, **calibre_options) os.unlink(tidy_filename) return result from registry import registerConverter registerConverter(HTML2Calibre) if __name__ == '__main__': print html2calibre(sys.argv[1], 'output.epub')
name = "wml-xfc" output_format = "wml" visible_name = "WML (XINC)" visible = True class DOCXConverter(RTFConverter): name = "ooxml-xfc" output_format = "docx" visible_name = "OOXML (XINC)" visible = True class ODTConverter(RTFConverter): name = "odt-xfc" output_format = "odt" visible_name = "ODT (XINC)" visible = True xfc_available = _check_xfc() from registry import registerConverter registerConverter(RTFConverter) registerConverter(WMLConverter) registerConverter(DOCXConverter) registerConverter(ODTConverter)
if get('text-transform'): del node.attrib['text-transform'] value = get('white-space') if value == 'pre': del node.attrib['white-space'] node.text = '\n' + node.text.lstrip() for k, v in { 'white-space-treatment': 'preserve', 'white-space-collapse': 'false', 'wrap-option': 'no-wrap', 'linefeed-treatment': 'preserve' }.items(): node.attrib[k] = v fo_text = tostring(E.getroot()) fo_text = fo_text.replace( '<ns0:block ', '<ns0:block margin-top="0" margin-bottom="0" ' ) # avoid a linebreak through <li><p> (XFC) # fo_text = fo_text.replace('<ns0:block/>', '') # causes a crash with XINC fo_text = fo_text.replace( '<ns0:block margin-top="0" margin-bottom="0" />', '') file(fo_filename, 'wb').write(fo_text) return fo_filename from registry import registerConverter registerConverter(HTML2FO)