我正在尝试使用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(); }
尽管我搜索了Web和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参数。