我看到了使用PDFBox提取图像的代码,如下所示
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;
在上面的代码中,我可以指定图像分辨率(150),同时从pdf中提取图像。以更高的分辨率,我得到更大的图像作为回报。
现在我希望它的反向意味着在将图像写入PDF时指定图像的分辨率/ DPI,但是下面的代码没有提供这样的选项来指定DPI?有人能指引我在哪里失踪吗?
PDPageContentStream contentStream = null;
contentStream = new PDPageContentStream(document, userPage);
contentStream.drawImage(img, 60, 60);
contentStream.close();
当我将图像写入pdf时,请指导我将分辨率/DPI(因为图像大于PDF页面大小)的参数传递到哪里?
谢谢,
发布于 2014-08-19 14:27:30
在回答之前的问题时,有人告诉你,在PDF的上下文中,dpi几乎没有意义。
尽管如此,您可以使用PDPageContentStream.drawXObject(PDXObject x对象、浮x、浮y、浮宽、浮高)方法实现您的目标。
调整原始图像的大小(即下采样),然后使用drawImage嵌入下采样图像。
另一方面,使用drawXObject嵌入原始图像并对其进行缩放。因此,在高分辨率打印输出时,前者只提供下采样、分辨率较低的图像,而后者允许输出较高分辨率的图像。
https://stackoverflow.com/questions/25358147
复制相似问题