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