gpt4 book ai didi

java - 以低分辨率打印图像

转载 作者:行者123 更新时间:2023-12-01 12:38:24 26 4
gpt4 key购买 nike

我需要创建带有图像的 pdf 以便打印。我正在使用 iText 将高分辨率图像添加到 pdf 中。它将质量降低至 72 DPI。导致打印后图像质量较差。

原始图像分辨率为2549*3304,DPI(300)。

我尝试了以下选项

image.scaleAbsolute(2549*.24 ,3304*.24 ); 

image.setDpi(300,300);

image.scaleToFit(2549*.24 ,3304*.24 );

当前代码如下所示

Document document = new Document(PageSize.LETTER);

document.open();

Image image = Image.getInstance("C:/Project/bg.png");

image.setAbsolutePosition(0,0);

image.scalePercent(24);

document.add(image);

document.close();

我经历了一些线程(Adding an image to a PDF using iTextSharp and scale it properly)仍然无法解决问题

有人可以帮我解决这个问题,以便在打印时获得更好的图像质量吗?

最佳答案

setDpi()方法与您的代码无关,原始图像的 DPI 也是如此。像素在 iText 中被视为点。这意味着按原样添加图像将导致每英寸有 72 像素。

您将图像缩放至原始大小的 24%。这意味着您提高了分辨率:仅使用 24% 的空间即可显示相同数量的像素。在本例中,您将显示分布在 611.76 个点上的 2549 个像素。这大约是 8.5 英寸,这意味着您的分辨率确实为 300 DPI。

我认为问题不是由 PDF 内图像的分辨率引起的(但很难说,因为我们无法检查 PDF)。我认为该问题是由打印过程使用与 PDF 中的分辨率不同的分辨率打印文档引起的。

无论如何:如果使用 scalePercent() 方法,iText 不会减少像素数。 , scaleAbsolute()scaleToFit() .

基于评论的额外信息:

询问 PDF 的“分辨率”是没有意义的,因为 PDF 没有任何分辨率(尽管 PDF 中的图像可能有分辨率)。我不知道为什么 Photoshop 告诉你分辨率是 72 DPI。也许这是一个默认值,因为 PDF 中的测量单位对应于一个点,一英寸有 72 个点。

我已经检查了您共享的 PDF。当我在屏幕上查看时,我没有看到任何分辨率损失。我可以看到该文档的尺寸为 8.5 x 11 英寸。至于图像,请看一下Acrobat生成的报告:

enter image description here

它说宽度/高​​度:2550/3300(像素)。

2550/8.5 = 300

3300/11 = 300

因此分辨率为每英寸 300 像素。或者:PDF 完全按照您想要的方式创建。

但是:你说打印文档时分辨率较差。这可能是由许多不同的原因引起的:也许您正在打印大于 8.5 x 11 英寸的页面,也许打印机无法以该分辨率打印,也许 PDF 查看器只能使用“降级打印”进行打印, ...

我的建议是,您使用不同的查看器在不同的打印机上测试此 PDF,以找到罪魁祸首。

关于java - 以低分辨率打印图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25356402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com