我正在使用 iText-7 java 库使用下面的代码生成 pdf。
(我正在将图像添加到pdf文档)
pdf = new PdfDocument(writer);
Document document = new Document(pdf);
ImageData data = ImageDataFactory.create(imgfilepath);
Image img = new Image(data);
img.scaleToFit(imageWidth, imageHeight);
img.setFixedPosition(1, 0, 0);
document.add(img);
-使用相同的图像,我从 acrobat 创建了 PDF。
问题 :
(1) 当我打印以上 2 个 PDF 时 - 1 使用 iText 创建,2 - 使用 Acrobat 创建 - 我发现打印质量不同。
- 所以我做了研究并了解到有一些相关的 iCC 配置文件(颜色配置文件)需要绑定。
当我检查两个 PDF 的元数据时,我发现 PDF 的色彩空间属性存在一些差异。(我在这里检查了元数据:https://www.metadata2go.com)
ITEXT PDF 元数据详细信息:
![enter image description here](https://i.stack.imgur.com/uiyJm.png)
Acrobat PDF 元数据详细信息
![enter image description here](https://i.stack.imgur.com/0epLe.png)
所以我的问题
(1) 在 CMYK 机器(例如 indigo)中打印时,如何使用 iText 获得与 Acrobat 相同的质量?
(2) 有没有办法将颜色配置文件(色彩空间)附加到 PDF 中的图像? (目前我所尝试的看起来不起作用)
您可以在此处查看这两个 PDF:
(1) 使用 Acrobat 创建的 PDF
(2) 使用 iText 创建 PDF
以下是来自 iText RUPS 的更多信息:
iText 生成的 PDF 详细信息
![iText Generated PDF Details](https://i.stack.imgur.com/lQLeD.png)
Acrobat Generated PDF :
![enter image description here](https://i.stack.imgur.com/tALiy.png)
看来如果图像被操纵,ICC 配置文件就会丢失。
我使用 PdfCanvas api 将从 iPhone 拍摄的图像添加到 PDF 中,它对我来说看起来不错。
@Test
public void testImageColorSpace() throws Exception {
String imageWithIcc = resourceFile("image-ios-profile.jpg");
String destination = targetFile("image-colorspace-itext-pdfcanvas.pdf");
PdfDocument pdfDocument = new PdfDocument(new PdfWriter(destination));
PdfPage page = pdfDocument.addNewPage(new PageSize(mm2pt(400f), mm2pt(400f)));
PdfCanvas pdfCanvas = new PdfCanvas(page);
ImageData imageData = ImageDataFactory.create(imageWithIcc);
AffineTransform at = AffineTransform.getTranslateInstance(mm2pt(100f), mm2pt(100f));
at.concatenate(AffineTransform.getScaleInstance(mm2pt(200f), mm2pt(200f)));
float[] matrix = new float[6];
at.getMatrix(matrix);
pdfCanvas.addImage(imageData, matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
pdfDocument.close();
}
![enter image description here](https://i.stack.imgur.com/iA9OA.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)