我见过使用PDFBox(如下所示)基于图像DPI提取图像的代码
PDDocument document = PDDocument.load(path);
PDFImageWriter writer = new PDFImageWriter();
boolean success = writer.writeImage(document, "jpg", "", 1, 1,
"C:\\Image Quality\\150", BufferedImage.TYPE_INT_RGB, 150);
return document;
在上面的代码中,我可以在从pdf中提取图像的同时指定图像分辨率(150)。分辨率越高,我的图像就越大。
现在我想反过来意味着在将图像写入PDF时指定图像的分辨率/ dpi,但是下面的代码没有提供指定DPI的选项?任何人都可以指导我错过的地方
PDPageContentStream contentStream = null;
contentStream = new PDPageContentStream(document, userPage);
contentStream.drawImage(img, 60, 60);
contentStream.close();
在将图像写入PDF时,请指导我可以传递分辨率/ DPI参数(图像大于pdf页面大小)的位置吗?
谢谢,
答案 0 :(得分:2)
在回答您之前的问题时,您已被告知dpi在PDF的背景下几乎没有意义。
有人说,很难,你可以用这个方法实现你的目标 PDPageContentStream.drawXObject(PDXObject xobject,float x,float y,float width,float height)
以原始形式调整图像大小(即下采样),然后使用drawImage嵌入下采样图像。
另一方面,使用drawXObject会嵌入原始图像并对其进行缩放。因此,在高分辨率打印输出时,前者仅提供下采样的,较少分辨的图像,而后者允许输出较高分辨率的图像。