2010-05-17 36 views

Respuesta

25

Usted podría intentar la API de Apache para documentos de Word:

http://poi.apache.org/

como un método para obtener el número de páginas:

public int getPageCount() 

devoluciones: El recuento de páginas o 0 si SummaryInformation no contiene una página co unt.

10

me encontré con una clase muy fresco, que se contabilizan como páginas de Palabra, Excel y PowerPoint. Con la ayuda de Apache POI. Y es para documentos antiguos y docx nuevos.

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; 
} 

fuente: OfficeTools.getPageCount()

5
//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(); 
+0

¿Se puede decir en qué biblioteca, esta clase de documento pertenece a ??? –

+0

por favor revise los comentarios en el código –

2
Document doc = new Document("C:\\Data\\abc.doc");  

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

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

Si desea utilizar Aspose.Words para Java, document.getPageCount() de la API le dará el número de páginas. Por favor, compruebe http://www.aspose.com/docs/display/wordsjava/com.aspose.words.Document.getPageCount+property

o también puede utilizar la API de docx4j,

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

Cuestiones relacionadas