使用Win32com获取word文档中文本的页码

问题描述 投票:0回答:1

我正在尝试编写一个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")
python win32com
1个回答
0
投票

提示:如果您对 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
© www.soinside.com 2019 - 2024. All rights reserved.