我想使用Python创建Word文档,但是,我希望尽可能多地重用现有的文档创建代码。我目前正在使用XSLT生成一个HTML programatically convert到PDF文件的HTML文件。但是,我的客户现在要求以Word(.doc)格式提供相同的文档。
到目前为止,我没有太多运气找到解决这个问题的方法。是否有人知道可能有助于解决此问题的开源库(或* gulp *专有解决方案)?
注意:所有可能的解决方案必须在Linux上运行。我相信这会消除pywin32。
答案 0 :(得分:36)
您可以使用Python创建Word文档的几种方法:
pywin32
)。 http://python.net/crew/pirx/spam7/ 编辑:
由于COM是不可能的,我建议如下(受@ kcrumley的回答启发):
使用UNO库从python自动化Open Office,在OOWriter中打开HTML文件,然后保存为.doc。
EDIT2:
现在有一个看起来不错的纯Python python-docx project(我还没用过它)。
答案 1 :(得分:25)
我成功地尝试了python-docx,它使您能够在Python中制作和编辑docx
答案 2 :(得分:2)
1)如果您想在当前管道的末尾添加另一个步骤,那么现在有几个选项可用于将PDF文件转换为Word文件。我没有尝试123PDFConverter,但CNET编辑推荐它(相同的链接);它有免费试用;它支持自动化。与任何第三方文件转换器一样,您的里程可能会有所不同,具体取决于PDF的复杂程度以及软件的实际效果。
2)基于codeape的COM自动化建议,如果COM自动化Word,您可以在Word中打开实际的HTML文件,并调用“另存为”命令,将其另存为DOC文件。
答案 3 :(得分:2)
我也必须使用python做类似的事情。它远远超过我想要的手动工作,但是用pyRTF创建的文档导致Word和OpenOffice崩溃,我没有动力去尝试解决它。
我发现使用我想要的样式创建Word文档模板最简单(但并不理想)。然后我的Python创建了一个HTML文件,其<p>
样式标记在Word样式之后。然后我在Word中打开HTML文件并在Word中打开模板。我将HTML文件中的所有文本剪切并粘贴到模板中,Word会根据我之前设置的样式重新格式化。在我的情况下,这适用于偶尔的文件。它可能不适合您的情况。 FYI。
答案 4 :(得分:0)
你能写的是WordML XML文件并将其压缩成.docx格式吗?您的所有客户端都需要Word 2007过滤器,如果它们不在Office 2007上。
那里有很多例子。
您也可以从2003年开始直接将XML加载到Word中,或so I've been told。