Java中单词文档中的页面数

2022-09-01 16:46:38

有没有一种简单的方法来计算页面数,是Word文档.doc还是.docx?

谢谢


答案 1

你可以试试Apache API for word Docs:

http://poi.apache.org/

它作为获取页数的方法:

public int getPageCount()

返回:页计数,如果摘要信息不包含页计数,则返回 0。


答案 2

我找到了一个非常酷的课程,它计算了Word,Excel和PowerPoint的页面。在Apache POI的帮助下。它适用于旧文档和新文档。

String lowerFilePath = filePath.toLowerCase();
if (lowerFilePath.endsWith(".xls")) {
            HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(lowerFilePath));
            Integer sheetNums = workbook.getNumberOfSheets();
            if (sheetNums > 0) {
                return workbook.getSheetAt(0).getRowBreaks().length + 1;
            }
        } else if (lowerFilePath.endsWith(".xlsx")) {
            XSSFWorkbook xwb = new XSSFWorkbook(lowerFilePath);
            Integer sheetNums = xwb.getNumberOfSheets();
            if (sheetNums > 0) {
                return xwb.getSheetAt(0).getRowBreaks().length + 1;
            }
        } else if (lowerFilePath.endsWith(".docx")) {
            XWPFDocument docx = new XWPFDocument(POIXMLDocument.openPackage(lowerFilePath));
            return docx.getProperties().getExtendedProperties().getUnderlyingProperties().getPages();
        } else if (lowerFilePath.endsWith(".doc")) {
            HWPFDocument wordDoc = new HWPFDocument(new FileInputStream(lowerFilePath));
            return wordDoc.getSummaryInformation().getPageCount();
        } else if (lowerFilePath.endsWith(".ppt")) {
            HSLFSlideShow document = new HSLFSlideShow(new FileInputStream(lowerFilePath));
            SlideShow slideShow = new SlideShow(document);
            return slideShow.getSlides().length;
        } else if (lowerFilePath.endsWith(".pptx")) {
            XSLFSlideShow xdocument = new XSLFSlideShow(lowerFilePath);
            XMLSlideShow xslideShow = new XMLSlideShow(xdocument);
            return xslideShow.getSlides().length;
}

来源: OfficeTools.getPageCount()


推荐