使用Python计算Word文档的页数

6

有没有一种方法可以使用Python高效地获取Word文档(.doc、.docx)的页数?

对于.odt文件呢?

我想将其用于基于Linux上的Web2py的Web应用程序。

谢谢!


2
对于docx文件,有一个python模块docx,可以让你访问Word文档的XML。这可能会或可能不会包含页面数。 - Sam Mussmann
2个回答

8

只针对那些寻找此博客文章的人....

from win32com.client import Dispatch
#open Word
word = Dispatch('Word.Application')
word.Visible = False
word = word.Documents.Open(doc_path)

#get number of sheets
word.Repaginate()
num_of_sheets = word.ComputeStatistics(2)

使用pywin32包的回答非常出色。对我来说完美地运行了。谢谢。 - stratis
我尝试了win32com的解决方案,但是出现了这个错误:'<win32com.gen_py.Microsoft Word 16.0 Object Library._Application instance at 0x412510792>' object has no attribute 'Repaginate'Repaginate被弃用了吗? - Jed
2
这种解决方案的缺点是它只能在安装了 MS-Word 的 Windows 上工作。从文件中读取页面的答案不依赖于操作系统(即在 Linux 上也适用),速度更快,也不依赖于 MS-Word 是否存在。 - Dick Kniep
很棒的答案!我这边附上一个word.Close(True)放在最后。 - Nil

5
您可以读取该值。
<Properties>
<Pages>CountValue</Pages>

从docx包中的docProps/app.xml文件中获取或者

<office:document-meta>
    <office:meta>
        <meta:document-statistic meta:page-count="CountValue">

从odt包中的meta.xml表单开始。

如果这些值不存在(它们是可选的),您必须对整个文档进行计算,实际上执行渲染,这会更加困难。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接