我想使用Python创建一个Word文档,但是我希望尽可能多地重用我的现有文档创建代码。我目前正在使用XSLT生成HTML文件,然后以编程方式转换为PDF文件。然而,我的客户现在要求将相同的文档以Word (.doc)格式提供。
到目前为止,我还没有找到解决这个问题的有效方法。是否有人知道任何开源库(或*gulp*专有解决方案),可以帮助解决这个问题?
注意:所有可能的解决方案都必须在Linux上运行。我相信这就排除了pywin32。
使用Python创建Word文档的几种方法:
pywin32
)。http://python.net/crew/pirx/spam7/编辑:
由于COM不可用,建议采用以下方法(受@kcrumley答案启发):
使用UNO库从python自动化Open Office,打开HTML文件,然后保存为.doc。
编辑2:
现在有一个纯Python的python-docx项目,看起来很不错(我没有使用过)。
我曾经也用python做过类似的事情。这比我想要的更加繁琐,但是使用pyRTF创建的文档会导致Word和OpenOffice崩溃,我没有动力去尝试弄清楚原因。
我发现最简单的方法(但并不理想)是创建一个Word文档模板,其中包含我想要的样式。然后我的Python创建一个HTML文件,其中<p>
样式标记为Word样式。然后我在Word中打开HTML文件并打开模板。我将所有文本从HTML文件剪切并粘贴到模板中,Word会根据我之前设置的样式重新格式化所有文本。对于我这种情况下的偶尔文件来说,这个方法可行。但它可能不适用于你的情况。FYI。
你能把它写成WordML XML文件并压缩成.docx格式吗?如果你的客户尚未使用Office 2007,他们只需要安装Word 2007过滤器。
这方面有很多示例。
你也可以直接在Word中加载XML文件,从2003开始,或者至少我听说是这样的。