我正在尝试编写一个Python脚本来读取Word文档并返回找到特定文本的页码。我能够找到文本,但不确定如何在同一循环内(或根本)获取页码。一般来说,我对 COM 对象还很陌生,因此任何信息都会非常有帮助。预先感谢!
word = win32.gencache.EnsureDispatch('Word.Application')
doc = word.Documents.Open(file_path)
for paragraph in doc.Paragraphs:
text = paragraph.Range.Find.Execute(FindText="Sample Text")
提示:如果您对 Word(或 Excel)COM 模型有疑问,那么寻找 VBA 解决方案是值得的,因为 VBA 是人们需要访问 Word(Excel)对象模型时最常使用的。一旦您知道要做什么,您就可以用您选择的语言来实现它。
Word文档通常不会分成页面。如果打印或刷新页码需要信息,则页面计数会即时发生。调用
Repaginate
将使 Word 刷新页数。
免责声明:以下代码未经 Python 测试。
# https://learn.microsoft.com/en-us/office/vba/api/word.wdbuiltinproperty
WD_PROPERTY_PAGES = 14
doc.Repaginate()
page_count_property = doc.BuiltInDocumentProperties(WD_PROPERTY_PAGES)
page_count = page_count_property.Value