我正在尝试使用 Apache PDFBox 库将 PDF 页面转换为 BufferedImage
实例。为什么下面的代码不起作用?
try {
PDDocument doc = PDDocument.load(pdfFile); // pdfFile is file path to pdf
List<PDPage> pgeLst = document.getDocumentCatalog().getAllPages();
for(PDPage pge : pgeLst) {
final PDRectangle mediaBox = pge.getMediaBox();
mediaBox.setUpperRightX(mediaBox.getUpperRightX() * scale);
mediaBox.setUpperRightY(mediaBox.getUpperRightY() * scale);
BufferedImage img = page.convertToImage(); // Image should now be scaled,
// but isn't.
}
} catch(Exception e) { e.printStackTrace(); }
也许解决方案很简单,尽管我搜索了网络和JavaDoc,但没有找到任何解决方案。
我使用的是 PDFBox 版本 1.8.8,确切地说是 pdfbox-app-1.8.8.jar
。
谢谢 Tilman Hausherr 指出这一点:)
提前致谢:)
最佳答案
使用
BufferedImage img = page.convertToImage(BufferedImage.TYPE_INT_RGB, 300);
在 PDFBox 1.8.* 中,这将以 300dpi 渲染。默认值(您使用的)是 144dpi。因此,根据您的需要使用大于或小于 144 的 dpi 参数。
关于java - 使用 PDFBox 缩放 PDF 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27460541/