我使用iText-7java库来使用下面的代码生成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);-Using相同的图像,我已经创建了PDF从杂技。
问题:
(1)当我打印以上两个PDFs 1创建使用iText,2-创建使用Acrobat -我看到质量不同的打印。
当我检查这两个PDF的元数据时,我知道PDF的颜色空间属性有一些不同。(我在这里检查了元数据:https://www.metadata2go.com)
ITEXT元数据详细信息:

Acrobat元数据详细信息

所以我的问题
(1)在CMYK机( iText )打印时,如何获得与Acrobat相同的质量?
(2)是否有办法在PDF格式的图像上附加颜色轮廓(颜色空间)?(目前我所尝试的看起来不起作用)
您可以在这里检查这两个PDF:
(1) 使用Acrobat创建的PDF
(2) 使用iText创建的PDF
这里有一些来自iText RUPS的更多信息:
iText生成的PDF详细信息

杂技生成PDF:

发布于 2020-11-25 08:34:01
看起来,如果图像被操纵,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();
}

https://stackoverflow.com/questions/60738068
复制相似问题