【问题标题】:Programatically get pages count in Microsoft Word documents on linux以编程方式获取 Linux 上 Microsoft Word 文档中的页数
【发布时间】:2009-04-28 11:13:16
【问题描述】:

我需要从 word 文档中获取页数。我测试了许多库和脚本(apache poi、perl 脚本、一些适用于 linux 的应用程序等等),唯一可行的解​​决方案是使用 Wine 安装 Microsoft Office 并使用 perl 访问 OLE。我设法做到了,但由于许可问题,我似乎无法在服务器上使用它......

apachepoi 和其他提供对 word 文档信息的访问的解决方案的问题与某些文档的不完整性有关。文档摘要中的 pageCount 属性有时会丢失(通常是保存为 doc 和旧文档的 odt 文档)。

有没有什么方法可以在不安装 Microsoft Office 的情况下实际计算页面数(不仅从摘要中获取信息)?

【问题讨论】:

    标签: ms-word


    【解决方案1】:

    我本来想说wvSummary,但我认为这使用了您所指的元数据。我不确定是否有一种方法可以在不实际布置文档的情况下获取页数。因此,您可能不得不求助于使用 API 来驱动真正与 Office 兼容的应用程序,例如 OpenOffice 或 AbiWord。

    【讨论】:

    • 我试过 vwSummary ,是的,它使用文档摘要。我忘了提到 OpenOffice,有 python 和 Java API,获取实际页数相当容易。这种方法的唯一问题是在 OpenOffice 中打开 doc 文件 - 有时它可能与使用 MS Office 打开的相同文件不同。
    • 是的,OpenOffice 有时会有所不同。请记住,.doc 没有标准。所以真正的答案是,没有答案。没有标准的方法来计算页面,因为没有标准的方法来呈现 doc 文件。如果您必须获得与 Word 相同的页数,那么您显然必须使用 Word。
    【解决方案2】:

    如果您信任文档摘要,而不是使用 wvSummary,您可以打开文件并执行正则表达式搜索“nofpages(\d+)”。 Groups[1] 将包含页数。

    由于 Word 总是在保存摘要时保存摘要,如果您知道文档上次使用 Word 保存,我认为这是非常安全的,根据我的经验,这是 99% 的时间。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 2021-09-30
    • 2011-03-24
    相关资源
    最近更新 更多