使用Python从Word文档输出PCL
我正在开发一个网页应用程序,这个应用会有一个功能,可以处理MS Word文档(可能还会包括来自网页富文本编辑器的输入),把文档中的表单字段占位符替换成实际的值,然后生成一个PCL格式的文档作为输出。
我在Windows上使用Python和Django进行开发,但这个解决方案最终需要部署到一个网络主机上(还没决定好),这意味着它需要在Linux上运行。
如果只有Linux的解决方案可行,我也愿意尝试。我也愿意使用其他语言编写的服务器进行交互。如果需要的话,我可以写C++或Java来完成这个任务。最终的输出格式必须是PCL。
我的问题是:用Python从Word文档生成PCL的好工具链是什么?
我在考虑使用某种接口来打开OpenOffice,以便打开Word文档,进行替换,然后将输出发送到某种打印机驱动程序。有没有人有这方面的经验?你们推荐哪些库?
我已经识别出的一些接口选项包括以下内容;如果有其他建议,我非常欢迎:
- Ulif.openoffice: http://pypi.python.org/pypi/ulif.openoffice/0.4
- Py3o.renderserver: https://bitbucket.org/faide/py3o.renderserver
- OpenOffice-python: http://openoffice-python.origo.ethz.ch/
第二种方法是使用像paradocx这样的工具( https://bitbucket.org/yougov/paradocx/wiki/Home )来打开Word文件,使用Python进行替换,然后以某种方式与可以输出PCL的工具进行连接。再次欢迎对这种方法的任何经验或评论。
我非常感谢你们对工具和工具链的任何评论,以及你们可能有的想法或建议。
这个问题与以下内容有相似之处,但并不相同: 如何从MS Word创建PCL文件
2 个回答
Ghostscript 是一个可以读取 PS(Postscript)或 PDF 文件并生成 PCL 的工具。你可以使用 Python 的一些库,或者直接用 subprocess 来实现这个功能……
好的,我的最终解决方案是创建一个Java网络服务来进行文件格式转换。
- Docx4j 提供了一个类
org.docx4j.convert.out.pdf.viaXSLFO.Conversion
,它可以和 Apache FOP 配合使用,把Docx文件转换成PDF;这个过程可以稍微修改一下,就能把文件转换成PCL格式(因为FOP可以输出PCL格式)。 - Spark 是一个轻量级的Java网络框架,让我可以把我的转换器封装成一个网络服务。
- 因为我还需要对文档进行一些处理,所以我需要一些元数据,最合适的就是使用多部分表单。我用 Apache Fileupload 来解码这个表单。
在几乎所有情况下,我都需要升级到开发版本的库才能让这个工作正常。
在Python这边,我使用: