首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以最快的方式读取Java中Docx文件的页数(在Word呈现之后)?

以最快的方式读取Java中Docx文件的页数(在Word呈现之后)?
EN

Stack Overflow用户
提问于 2020-03-26 08:02:35
回答 1查看 844关注 0票数 1

我使用docx4j创建docx文件。在文档创建之后,我需要知道页面的数量。

我知道我可以使用docx4j读取持久化的页面数如下:

代码语言:javascript
运行
复制
final WordprocessingMLPackage doc = ... // read doc
org.docx4j.openpackaging.parts.DocPropsExtendedPart docPropsExtendedPart = doc .getDocPropsExtendedPart();
org.docx4j.docProps.extended.Properties extendedProps = docPropsExtendedPart.getJaxbElement();
final Integer pages = extendedProps.getPages();

但是它总是返回1,因为这是持久化到docx文件的页面数。Apache显然返回相同的结果(XWPFDocument为docx文件返回1页)。

当您用Word打开文档时,您可以注意到在最初的几秒钟内,页面数稳步更新(这确定初始页数为1,Word在应用影响页数的样式等之后动态更新它)。

我读到你可以先把它转换成PDF格式,然后再读取页数。docx4j在github上提供的样例PDF转换使用商业PDF转换器,所以我不能重用这段代码。此外,首先把它转换成PDF似乎很麻烦,而且对我来说也是不必要的浪费时间。

问题:在不使用商业软件的情况下读取Java中的docx文件的页数最快的方法是什么?

//编辑:不幸的是,java中的word文档中的页数这个问题对我没有帮助。正如我上面所写的,apache (和其他API)只读取持久化的页面数(即1)。我需要的是实际的页数,因为Word在实际打开文件时会显示它。

EN

回答 1

Stack Overflow用户

发布于 2020-03-26 21:22:42

您可以使用documents4j (尽管这需要Word);请参阅https://www.docx4java.org/blog/2020/03/documents4j-for-toc-update/

您可能需要更多地定制word_convert.vbs。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60863007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档