使用Python将页码添加到Word文档

时间:2014-06-11 15:12:28

标签: python ms-word win32com

有没有办法使用Python win32com将页码添加到Word文档的右下角?我可以添加页眉和页脚,但我找不到以PagePumber TotalPages格式添加页码的方法(例如:1/5)

以下是向页面添加居中页眉和页脚的代码

from win32com.client import Dispatch as MakeDoc
filename = name + '.doc'
WordDoc = MakeDoc("Word.Application")
WordDoc = WordDoc.Documents.Add()
WordDoc.Sections(1).Headers(1).Range.Text = name
WordDoc.Sections(1).Headers(1).Range.ParagraphFormat.Alignment = 1
WordDoc.Sections(1).Footers(1).Range.Text = filename
WordDoc.Sections(1).Footers(1).Range.ParagraphFormat.Alignment = 1

由于

2 个答案:

答案 0 :(得分:2)

要插入页码,请使用以下语句:

WordDoc.Sections(1).Footers(1).PageNumbers.Add(2,True)
WordDoc.Sections(1).Footers(1).PageNumbers.NumberStyle = 57

但是,页码的格式是-page number-。插入页码的文档为here,数字样式的文档为here

答案 1 :(得分:0)

我知道这是一个古老的问题,但是我正试图弄清楚同样的事情,最终制定出一个相当丑陋的解决方案但是完成了工作。请注意,我必须在插入activefooter后重新定义wdFieldPage,否则生成的页脚将显示为of 12而不是1 of 2

The answer to this vba question was helpful when I was trying to figure out the formatting.

我正在使用Python 3.4,testdocument.doc只是一个现有的.doc文件,其中一些随机文本分布在两个页面上,没有现有的页脚。

w = win32com.client.gencache.EnsureDispatch("Word.Application")          
w.Visible = 0
adoc = w.Documents.Open("C:\\temp1\\testdocument.doc")

activefooter = adoc.Sections(1).Footers(win32com.client.constants.wdHeaderFooterPrimary).Range
activefooter.ParagraphFormat.Alignment = win32com.client.constants.wdAlignParagraphRight
activefooter.Collapse(0)
activefooter.Fields.Add(activefooter,win32com.client.constants.wdFieldPage)
activefooter = adoc.Sections(1).Footers(win32com.client.constants.wdHeaderFooterPrimary).Range 
activefooter.Collapse(0)
activefooter.InsertAfter(Text = ' of ')
activefooter.Collapse(0)
activefooter.Fields.Add(activefooter,win32com.client.constants.wdFieldNumPages)  
adoc.Save()
adoc.Close()
w.Quit()