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

时间:2014-08-18 07:23:22

标签: 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", 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页面大小)的位置吗?

谢谢,

1 个答案:

答案 0 :(得分:2)

在回答您之前的问题时,您已被告知dpi在PDF的背景下几乎没有意义。

有人说,很难,你可以用这个方法实现你的目标     PDPageContentStream.drawXObject(PDXObject xobject,float x,float y,float width,float height)

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

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