java - 计算 Word 文档中的页数

标签 java ms-word apache-poi .doc

我正在尝试使用 java 计算 word 文档的页数。

这是我的实际代码,我使用的是 Apache POI 库

String path1 = "E:/iugkh";
File f = new File(path1);
File[] files = f.listFiles();
int pagesCount = 0;
for (int i = 0; i < files.length; i++) {
    POIFSFileSystem fis = new POIFSFileSystem(new FileInputStream(files[i]));
    HWPFDocument wdDoc = new HWPFDocument(fis);
    int pagesNo = wdDoc.getSummaryInformation().getPageCount();
    pagesCount += pagesNo;
    System.out.println(files[i].getName()+":\t"+pagesNo);
}

输出是:

ten.doc:    1
twelve.doc: 1
nine.doc:   1
one.doc:    1
eight.doc:  1
4teen.doc:  1
5teen.doc:  1
six.doc:    1
seven.doc:  1

这不是我所期望的,因为前三个文档的页长是 4 页,另一个是 1 到 5 页长。

我错过了什么?

我是否必须使用另一个库才能正确计算页数?

提前致谢

最佳答案

这可能对您有所帮助。它计算表单提要的数量(有时用于分隔页面),但我不确定它是否适用于所有文档(我猜它不会)。

WordExtractor extractor = new WordExtractor(document);
String[] paragraphs = extractor.getParagraphText();

int pageCount = 1;
for (int i = 0; i < paragraphs.length; ++i) {
    if (paragraphs[i].indexOf("\f") >= 0) {
        ++pageCount;
    }
}

System.out.println(pageCount);

关于java - 计算 Word 文档中的页数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16442347/

相关文章:

java - 我的所有输出都收到 0

excel - 用于将 MS Word 表导出到 Excel 工作表的宏

javascript - 在 Word Javascript API/Office.js 中创建自定义范围

java - POI中多列写入

java - 如何通过 apache poi 在 docx 中创建分节符类型下一页

java - 如何使用java eclipse读取Excel页面的特定工作表

java - 公司范围内的父 pom

java - 带条件的字符串replaceAll

java - Prometheus 通过 JMX 监控 Apache Ignite

c# - 在书签中插入图片 (OpenXML)