查找PDF页面计数而不读取整个文件

时间:2016-06-30 06:50:22

标签: java pdf

我的问题如下:

有一些巨大的PDF文件(> 500MB),我想找到他们的页面数,使用JAVA。如果我使用itext或pdfbox,我必须等到它读取整个文件并且大部分时间都失败了,因为文件很大或者只需要花费很多时间。

所以,我想知道是否有任何快速有效的方法来查找PDF文件的页数。

1 个答案:

答案 0 :(得分:1)

可能重复吗? Page count of Pdf with Java

并从该帖子中Mark Storer回答:

  

itext API经历了一次小修。现在(在5.4.x版本中)   正确的使用方法是通过java.io.RandomAccessFile:

int efficientPDFPageCount(File file) {
     RandomAccessFile raf = new RandomAccessFile(file, "r");
     RandomAccessFileOrArray pdfFile = new RandomAccessFileOrArray(
          new RandomAccessSourceFactory().createSource(raf));
     PdfReader reader = new PdfReader(pdfFile, new byte[0]);
     int pages = reader.getNumberOfPages();
     reader.close();
     return pages;
}