我正在比较Java上的Apache PDFBox(2.0.8)和ITextPDF(5.1.3)。
我的用例是查找PDF中每一页的尺寸。
在此方面,PDFBox比iText慢很多。尽管iTextPDF似乎有专门用于获取页面大小的方法,但我无法找到任何使PDFBox在不读取页面内容的情况下也能做到这一点的方法。
iText:
reader = new PdfReader(filepath);
Rectangle psize = reader.getPageSize(pageNumber);
float width = psize.getWidth();
float height = psize.getHeight();
PDFBox:
PDDocument document = PDDocument.load(filepath);
PDPage page = document.getPage(pageNumber);
float height = page.getMediaBox().getHeight();
float width = page.getMediaBox().getWidth();
与iTextPDF相比,较小的PDF文件花费PDFBox几乎两倍的时间。当我们只需要页面的尺寸而不需要内容的尺寸时,有没有办法从PDFBox中获得更好的性能?