0

我想为 word 文档的每一页添加页眉和页脚,并想在文档的开头添加一些页面,我该如何使用 python 做到这一点?我试过 python-docx 但它没有按我预期的那样工作。有没有其他方法可以达到我的要求?

4

1 回答 1

3

我认为您可以采取的最佳方法是查看 python-docx 以了解它如何管理文件。Docx 是一种压缩格式(Docx Tag Wiki):

.docx格式是一个压缩文件,其中包含以下文件夹:

+--docProps
|  +  app.xml
|  \  core.xml
+  res.log
+--word //this folder contains most of the files that control the content of the document
|  +  document.xml //Is the actual content of the document
|  +  endnotes.xml
|  +  fontTable.xml
|  +  footer1.xml //Containst the elements in the footer of the document
|  +  footnotes.xml
|  +--media //This folder contains all images embedded in the word
|  |  \  image1.jpeg
|  +  settings.xml
|  +  styles.xml
|  +  stylesWithEffects.xml
|  +--theme
|  |  \  theme1.xml
|  +  webSettings.xml
|  \--_rels
|     \  document.xml.rels //this document tells word where the images are situated
+  [Content_Types].xml
\--_rels
   \  .rels

像 docx-python 这样的库首先提取 docx,因此您可以在 python docx 中找到它:我为您找到了它:https ://github.com/mikemaccana/python-docx/blob/master/docx.py #L65

def opendocx(file):
    '''Open a docx file, return a document XML tree'''
    mydoc = zipfile.ZipFile(file)
    xmlcontent = mydoc.read('word/document.xml')
    document = etree.fromstring(xmlcontent)
    return document

您可以获得 'word/document.xml' 的 xmlcontent,它是 docx 的主要内容,使用 docx-python 更改它(我向您推荐,docx-python 似乎能够添加许多不同的元素。如果您想在文档开头复制其他 word 文档的内容,您可以尝试将 document.xml 的内容复制到您的 document.xml,但它可能会给您一些错误,特别是如果您使用图像或非文本内容。

要添加页眉或页脚,您必须创建一个文件word/header1.xml,或者word/footer1.xml您可以只复制您创建的文件的 header1.xml 内容,这应该可以。

希望这可以帮助

于 2013-07-22T13:48:20.193 回答