Количество страниц в слове документ в Java - PullRequest
24 голосов
/ 17 мая 2010

Есть ли простой способ подсчитать количество страниц в документе Word .doc или .docx?

Спасибо

Ответы [ 5 ]

25 голосов
/ 17 мая 2010

Вы можете попробовать API Apache для Word Docs:

http://poi.apache.org/

Это как метод получения количества страниц:

public int getPageCount()

Returns : Количество страниц или 0, если SummaryInformation не содержит количество страниц.

11 голосов
/ 25 января 2015

Я нашел действительно классный класс, который считает Pages для 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 ()

11 голосов
/ 17 мая 2010

Используйте Apache POI SummaryInformation , чтобы получить общее количество страниц документа MS Word

5 голосов
/ 01 января 2016
  //Library is aspose 
  //package com.aspose.words.*

/*Open the Word Document */

Document doc = new Document("C:\\Temp\\file.doc"); 

/*Get page count */

int pageCount = doc.getPageCount();
2 голосов
/ 04 января 2016
Document doc = new Document("C:\\Data\\abc.doc");     

//Get page count                                         
int pageCount = doc.getPageCount();

//Print Page Count            
System.out.println(pageCount);

Если вы хотите использовать Aspose.Words для Java, API document.getPageCount () предоставит вам количество страниц. Пожалуйста, проверьте http://www.aspose.com/docs/display/wordsjava/com.aspose.words.Document.getPageCount+property

или вы также можете использовать API docx4j,

http://www.docx4java.org/trac/docx4j/browser/trunk/docx4j/src/main/java/org/docx4j/samples/DocProps.java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...