一个将HTML转换为PDF、RTF、DOCX、WML和ODT的Python接口(属于zopyx.smartprintng.core)
项目描述
zopyx.convert2
zopyx.convert2软件包帮助您使用XSL-FO技术或使用PrinceXML将HTML转换为PDF、RTF、ODT、DOCX和WML。此软件包用作zopyx.smartprintng.core的低级API。
需求
Java 1.5.0或更高版本(FOP 0.94需要Java 1.6或更高版本)
csstoxslfo(包含)
XFC-4.0(XMLMind)用于ODT、RTF、DOCX和WML支持(如有需要)
XINC 2.0(Lunasil)用于PDF支持(商业版)
或 FOP 0.94(Apache项目)用于PDF支持(免费版)
或 PrinceXML(商业版)用于PDF支持
安装
使用easy_install或从Python Cheeseshop下载源代码安装zopyx.convert2。如果需要,这将会自动安装Beautifulsoup和Elementree模块。
环境变量$XFC_DIR必须设置,并指向您的XFC安装目录的根目录
环境变量$XINC_HOME必须设置,并指向您的XINC安装目录的根目录
环境变量$FOP_HOME必须设置,并指向您的FOP安装目录的根目录
如果您使用PrinceXML,则“prince”二进制文件必须在$PATH中
支持的平台
Windows,Unix
源代码
错误跟踪器
用法
一些来自Python命令行的示例
from zopyx.convert2 import Converter C = Converter('/path/to/some/file.html') pdf_filename = C('pdf-xinc')['output_filename'] # using XINC pdf2_filename = C('pdf-pisa')['output_filename'] # using PISA pdf3_filename = C('pdf-fop')['output_filename'] # using FOP pdf4_filename = C('pdf-prince')['output_filename'] # using FOP rtf_filename = C('rtf-xfc')['output_filename'] pdt_filename = C('odt-xfc')['output_filename'] wml_filename = C('wml-xfc')['output_filename'] docx_filename = C('docx-xfc')['output_filename']
还有一个非常简单的命令行转换器可用
html-convert --format rtf --output foo.rtf sample.html
html-convert有一个–test选项,可以将一些示例HTML转换为文件。如果一切正常,您应该会看到类似以下内容
>html-convert --test Entering testmode pdf: /tmp/tmpuOb37m.html -> /tmp/tmpuOb37m.pdf rtf: /tmp/tmpuOb37m.html -> /tmp/tmpuOb37m.rtf docx: /tmp/tmpuOb37m.html -> /tmp/tmpuOb37m.docx odt: /tmp/tmpuOb37m.html -> /tmp/tmpuOb37m.odt wml: /tmp/tmpuOb37m.html -> /tmp/tmpuOb37m.wml pdf: /tmp/tmpZ6PGo9.html -> /tmp/tmpZ6PGo9.pdf rtf: /tmp/tmpZ6PGo9.html -> /tmp/tmpZ6PGo9.rtf docx: /tmp/tmpZ6PGo9.html -> /tmp/tmpZ6PGo9.docx odt: /tmp/tmpZ6PGo9.html -> /tmp/tmpZ6PGo9.odt wml: /tmp/tmpZ6PGo9.html -> /tmp/tmpZ6PGo9.wml
zopyx.convert2的内部工作方式
源HTML文件使用mxTidy转换为XHTML。
使用Werner Donne编写的出色的“csstoxslfo”转换器将XHTML文件转换为FO。
将FO文件传递给外部XINC或XFC转换器以生成所需的输出格式。
所有转换器均基于Java技术,使得转换解决方案在操作系统(包括Windows)之间具有高度的可移植性。
环境变量
以下环境变量可用于解决与操作系统或发行版特定的相关问题:
ZOPYX_CONVERT_SHELL - 默认为sh,用作执行外部转换器的shell命令。
ZOPYX_CONVERT_EXECUTION_MODE - 默认为process,表示Python执行外部命令的方法(默认使用process模块。其他值:system,commands)
已知问题
如果您正在使用zopyx.convert2与FOP一起使用:仅使用最新的FOP 0.94。不要使用任何打包的FOP版本,如MacPorts提供的版本,该版本已知已损坏。
请确保您已阅读csstoxslfo文档。 csstoxslfo对HTML标记有一些要求。不要期望它是最终的HTML转换器。有关必要标记的所有问题均记录在csstoxslfo文档中,并将不会回答。
许可
zopyx.convert2根据Zope公共许可证(ZPL 2.1)发布。请参阅LICENSE.txt。
联系
更改
更改日志
2.4.5 (2012-11-05)
修正了拼写错误
2.4.4 (2012-11-05)
在现有文件夹内部创建tidyed文件,而不是在$TMPDIR中。此错误导致某些样式文件无法通过PDFreactor加载。
2.4.3 (2012-06-20)
修正了日志记录器的(误)使用
修正了API文档
2.4.2 (2012-01-01)
实验性支持PDFreactor
2.4.1 (2011-11-11)
修正了BeautifulSoup依赖关系
2.4 (2011-11-07)
更新文档以反映Plone客户端连接器第一个公开版本的变化
2.3.2 (2011-08-23)
在Calibre转换器中添加了对%(WORKDIR)s替换的支持
2.3.1 (2011-06-15)
支持PISA(pdf-pisa-bin)- 要求在$PATH中找到‘pisa’
2.3.0 (2011-06-05)
支持PISA(pdf-pisa)
2.2.5 (2011-04-03)
Calibre转换器现在遵守commandlineoptions.txt文件
2.2.4 (2010-12-16)
为基于XFC的转换器去除BASE标签
2.2.3 (2010-08-16)
使去除BASE标签特定于pdf-fop
2.2.2 (2010-08-15)
pdf-fop转换器未正确注册
2.2.1 (2010-07-19)
支持$ZOPYX_CONVERT_SHELL
2.2.0 (2010-05-15)
添加了专门的ConversionError异常
2.1.1 (2010-02-19)
放宽了对图像存在的tidy检查
2.1.0 (2009-09-05)
Calibre集成
API更改:convert()现在返回一个包含所有相关转换结果的更丰富的dict
2.0.4 (2009-07-07)
固定BeautifulSoup 3.0.x
2.0.3 (2009-07-05)
在fop.py中修复了问题
2.0.2 (2009-06-02)
修复了测试数据文件的损坏路径
2.0.1 (2009-06-02)
添加了环境变量ZOPYX_CONVERT_EXECUTE_METHOD,以控制process模块与os.system()(在挂起的Java进程的情况下)的使用(默认值:‘process’)
2.0.0 (2009-05-14)
最终发布
2.0.0b3 (25.12.2008)
tidy:将图像引用重写为相对于要转换的HTML文件
2.0.0b2 (05.10.2008)
修正了一些导入错误
现在与zopyx.smartprintng.core一起工作
2.0.0b1 (04.10.2008)
首次发布
zopyx.convert的完整新实现
添加了对PrinceXML的支持
项目详细信息
zopyx.convert2-2.4.6.zip的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e0ce28d6ec8e8e09597879b34007d18f420121819c35743b6e490074c5e8531f |
|
MD5 | 504853a8bdba24a7a86fe40a2603d5bf |
|
BLAKE2b-256 | 73b9b76cbd7e097187315f0117dcc241ae4983275e5b7ae4531d8a6d34de60b3 |