【发布时间】:2016-08-24 11:05:34
【问题描述】:
我确实使用 PDFBox 2.0.2 版将 PDF 拆分为 JPEG 图像。起初,我只是像这样编写示例代码Ö
BufferedImage image = pdfRenderer.renderImageWithDPI(pageCounter, 300, ImageType.RGB);
现在,我想将此图像转换为 PDF,但图像 DPI 太大。
我真的想降低 dpi。所以我尝试了这个,但它也没有工作:
PDImageXObject pdImageXObject = JPEGFactory.createFromImage(doc, bimg, 0.5f, 100);
如何降低 DPI?
这是我的源代码:
InputStream in = new FileInputStream(imagePath);
BufferedImage bimg = ImageIO.read(in);
float width = bimg.getWidth() ;
float height = bimg.getHeight();
PDPage page = new PDPage(new PDRectangle(width, height));
doc.addPage(page);
//PDStream stream = new PDStream(doc, in);
PDImageXObject pdImageXObject = JPEGFactory.createFromImage(doc, bimg, 0.5f, 10);
PDPageContentStream contentStream = new PDPageContentStream(doc, page);
contentStream.drawImage(pdImageXObject, 0, 0);
contentStream.close();
}
} finally {
System.out.println("ddd");
doc.save(pdfPath);
doc.close();
}
}
【问题讨论】:
-
是否要将位图图像本身更改为较低的分辨率?或者您只是想缩放以适应页面?
-
@mkl 我想他想在新的 PDF 中缩放图像。
-
@TilmanHausherr 我想将位图图像本身更改为较低的分辨率,并制作新的 PDF,因为我试图将新的 PDF 渲染为图像,每个尺寸都太大。
-
为什么不用 72dpi 而不是 300 渲染它呢?在这种情况下 72 / 72 = 1。
BufferedImage image = pdfRenderer.renderImageWithDPI(pageCounter, 72, ImageType.RGB);