Java 查找PDF页面计数而不读取整个文件
我的问题如下: 有一些巨大的PDF文件(>500MB),我想使用JAVA查找它们的页面数。如果我使用itext或pdfbox,我必须等到它读取整个文件时,大多数情况下都会失败,因为文件太大,或者需要花费很多时间 因此,我想知道是否有任何快速有效的方法来查找PDF文件的页数。是否可能重复 这是帖子的答案: iTextAPI经历了一次小小的大修。现在(在版本5.4.x中) 正确的使用方法是传递java.io.RandomAccessFile:Java 查找PDF页面计数而不读取整个文件,java,pdf,Java,Pdf,我的问题如下: 有一些巨大的PDF文件(>500MB),我想使用JAVA查找它们的页面数。如果我使用itext或pdfbox,我必须等到它读取整个文件时,大多数情况下都会失败,因为文件太大,或者需要花费很多时间 因此,我想知道是否有任何快速有效的方法来查找PDF文件的页数。是否可能重复 这是帖子的答案: iTextAPI经历了一次小小的大修。现在(在版本5.4.x中) 正确的使用方法是传递java.io.RandomAccessFile: 也许这有帮助?不,我试过了,但仍然需要很多时间。。。我正
也许这有帮助?不,我试过了,但仍然需要很多时间。。。我正在搜索类似“读取元数据并获取页面计数”的内容否,元数据(如果可用)不适用于此。@user3519936请共享有问题的文件并指出可接受的时间长度。
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;
}