我正在尝试使用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参数。

10-08 17:24