Image 将高分辨率(DPI)图像写入PDF

Image 将高分辨率(DPI)图像写入PDF,image,pdf,pdfbox,dpi,Image,Pdf,Pdfbox,Dpi,我看过使用PDFBox基于图像DPI提取图像的代码,如下所示 PDDocument document = PDDocument.load(path); PDFImageWriter writer = new PDFImageWriter(); boolean success = writer.writeImage(document, "jpg", "", 1, 1, "C:\\Image Quality\\150", BufferedI

我看过使用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页面大小)


谢谢,

在回答之前的问题时,您被告知dpi在PDF中几乎没有意义

也就是说,很难,你可以用这种方法实现你的目标 PDPageContentStream.drawXObject(PDXObject xobject、浮点x、浮点y、浮点宽度、浮点高度)

按原始形式调整图像大小(即下采样),然后使用drawImage嵌入下采样图像


另一方面,使用drawXObject嵌入原始图像并对其进行缩放。因此,在高分辨率打印输出时,前者仅提供降采样、分辨率较低的图像,而后者允许输出分辨率较高的图像

在回答之前的问题时,您被告知dpi在PDF中几乎没有意义。也就是说,您可以使用重载drawXObject(PDXObject xobject,float x,float y,float width,float height)来实现您的目标。是的,我理解这一点,但我看到一些在线网站在将图像转换为PDF时也需要分辨率,因此这给我带来了困惑。现在我假设调整图像大小以适应PDF格式不会改变质量,是吗?我认为调整大小然后使用drawImage等于drawXObject方法,如果这不是两者之间的区别,请纠正我。我认为调整大小然后使用drawImage等于drawXObject方法,如果这不是两者之间的区别,请纠正我。-按原始形式调整图像大小(即下采样),然后使用
drawImage
嵌入下采样图像<另一方面,code>drawXObject嵌入原始图像并对其进行缩放。因此,在高分辨率打印输出时,前者只提供下采样、分辨率较低的图像,而后者允许输出分辨率较高的图像。非常感谢您解决了我的问题。现在我得到了高质量的PDF,之前我调整了大小,但质量下降了,但现在它与drawXObject完美配合。好的,我的评论是一个真实的答案。