java - 使用 PDFBox 缩放 PDF 页面

标签 java pdfbox

我正在尝试使用 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/

相关文章:

java - 从 PDF 中提取的 "Empty"字符

java - 本地接口(interface)和 REST Web 服务

java - 我不太了解 do { } while 结构

java - 如何修复 Netbeans 7.2.1 无法正确构建/编译?

java - 使用页码作为输入从现有 pdf 中剪辑并创建新 pdf - pdfbox

javascript - 使用 PDFBox 将计算脚本添加到 pdf 表单字段

java - 在 Java 中 : programmatically determining addresses of C/C++ variables given a COFF/ELF/DWARF executable

java - BoxLayout 中的 createVerticalGlue() 不起作用

java - 有没有办法使用 pdfbox 从现有 pdf 中读取页眉、页脚、带水印的图像/文本?

java - 性能 iText 与 PdfBox