我需要从word文档中获取页数。我已经测试了很多库和脚本(apache poi,perl脚本,一些linux应用程序等等),唯一可行的解决方案是使用Wine安装Microsoft Office并使用perl访问OLE。我设法做到了,但由于许可问题,我似乎无法在服务器上使用它......
apachepoi和其他提供对word文档信息访问的解决方案的问题与某些文档的不完整性有关。文档摘要中的pageCount属性有时会丢失(通常将odt文档保存为doc和较旧的文档)。
有没有办法在不在服务器上安装Microsoft Office的情况下实际计算页面(不仅仅是从摘要中获取信息)?
答案 0 :(得分:2)
我打算说wvSummary,但我认为这会使用您所指的元数据。我不确定是否有办法在不实际布置文档的情况下获取页数。因此,您可能不得不求助于使用API来驱动与OpenOffice或AbiWord等真正的Office兼容的应用程序。
答案 1 :(得分:1)
如果您信任文档摘要,而不是使用wvSummary,则只需打开文件并对“nofpages(\ d +)”执行正则表达式搜索。组[1]将包含页数。
由于Word会在保存时始终保存摘要,因此我认为如果您知道上次使用Word保存文档,这是非常安全的,根据我的经验,这是99%的时间。