我如何使用Python创build一个Word文档?

我想用Python创build一个Word文档,但是,我想尽可能多地使用我现有的文档创build代码。 我正在使用XSLT生成一个HTML文件,我编程转换为PDF文件。 但是,我的客户现在要求以Word(.doc)格式提供相同的文档。

到目前为止,我还没有find任何解决这个问题的运气。 是否有人知道可能有助于解决此问题的开源库(或* gulp *专有解决scheme)?

注意:所有可能的解决scheme必须在Linux上运行。 我相信这消除了pywin32。

有几种方法可以使用Python创buildWord文档:

  • 使用COM自动化使用MS Word对象模型(使用pywin32 )创build文档。 http://python.net/crew/pirx/spam7/
  • 使用Python自动化OpenOffice: http : //wiki.services.openoffice.org/wiki/Python
  • 如果rtf格式正常,请使用PyRTF库: http ://pyrtf.sourceforge.net/

编辑:

由于COM是不可能的,所以我build议如下(由@ kcrumley的答案启发):

使用UNO库从python自动化Open Office,在OOWriter中打开HTML文件,然后保存为.doc。

EDIT2:

现在有一个纯Python python-docx项目 ,看起来不错(我没有使用它)。

我试用了python-docx ,它使您能够在Python中编辑和编辑docx

1)如果你只想在当前stream水线的最后添加一个步骤,现在有几个选项可以将PDF文件转换为Word文件。 我没有试过123PDFConverter ,但CNET编辑推荐它(相同的链接); 它有免费试用; 它支持自动化。 与任何第三方文件转换器一样,您的里程可能会有所不同,具体取决于PDF的复杂程度以及软件的实际情况。

2)build立在codeape的COM自动化build议上,如果COM自动化Word,可以在Word中打开实际的HTML文件,并调用“另存为”命令,将其另存为DOC文件。

我不得不做类似于python的东西。 手工工作比我想要的要多得多,但是用pyRTF创build的文档导致了Word和OpenOffice的崩溃,我没有动机试图找出答案。

我发现它是最简单的(但不是理想的),用我想要的样式创build一个Word文档模板。 然后,我的Python创build一个HTML文件,其<p>样式标记在Word样式之后。 然后,我打开Word中的HTML文件并在Word中打开模板。 我将HTML文件中的所有文本剪切并粘贴到模板中,Word根据之前设置的样式重新格式化所有文本。 这适用于我的情况偶尔的文件。 这可能不适合你的情况。 仅供参考。

你可以写成WordML XML文件并将其压缩成.docx格式吗? 如果您的客户端不在Office 2007上,则您所需的所有客户端都是Word 2007筛选器。

那里有很多例子。

你也可以从2003年开始直接将XML加载到Word中,或者告诉我 。