使用Python从Word文档输出PCL

0 投票
2 回答
1375 浏览
提问于 2025-04-17 10:54

我正在开发一个网页应用程序,这个应用会有一个功能,可以处理MS Word文档(可能还会包括来自网页富文本编辑器的输入),把文档中的表单字段占位符替换成实际的值,然后生成一个PCL格式的文档作为输出。

我在Windows上使用Python和Django进行开发,但这个解决方案最终需要部署到一个网络主机上(还没决定好),这意味着它需要在Linux上运行。

如果只有Linux的解决方案可行,我也愿意尝试。我也愿意使用其他语言编写的服务器进行交互。如果需要的话,我可以写C++或Java来完成这个任务。最终的输出格式必须是PCL。

我的问题是:用Python从Word文档生成PCL的好工具链是什么

我在考虑使用某种接口来打开OpenOffice,以便打开Word文档,进行替换,然后将输出发送到某种打印机驱动程序。有没有人有这方面的经验?你们推荐哪些库?

我已经识别出的一些接口选项包括以下内容;如果有其他建议,我非常欢迎:

第二种方法是使用像paradocx这样的工具( https://bitbucket.org/yougov/paradocx/wiki/Home )来打开Word文件,使用Python进行替换,然后以某种方式与可以输出PCL的工具进行连接。再次欢迎对这种方法的任何经验或评论。

我非常感谢你们对工具和工具链的任何评论,以及你们可能有的想法或建议。

这个问题与以下内容有相似之处,但并不相同: 如何从MS Word创建PCL文件

2 个回答

2

Ghostscript 是一个可以读取 PS(Postscript)或 PDF 文件并生成 PCL 的工具。你可以使用 Python 的一些库,或者直接用 subprocess 来实现这个功能……

0

好的,我的最终解决方案是创建一个Java网络服务来进行文件格式转换。

  • Docx4j 提供了一个类 org.docx4j.convert.out.pdf.viaXSLFO.Conversion,它可以和 Apache FOP 配合使用,把Docx文件转换成PDF;这个过程可以稍微修改一下,就能把文件转换成PCL格式(因为FOP可以输出PCL格式)。
  • Spark 是一个轻量级的Java网络框架,让我可以把我的转换器封装成一个网络服务。
  • 因为我还需要对文档进行一些处理,所以我需要一些元数据,最合适的就是使用多部分表单。我用 Apache Fileupload 来解码这个表单。

在几乎所有情况下,我都需要升级到开发版本的库才能让这个工作正常。

在Python这边,我使用:

  • requests 来和网络服务进行通信。
  • poster 来准备多部分请求。

撰写回答