转换PDF在Itext中有Image RGB到CMYK吗?

时间:2014-09-30 08:50:03

标签: java itext

在我的pdf文件中,我添加图片和文字如下:

Image img = Image.getInstance(fileName); // type png or jpg  
document.add(img);   
Paragraph p = new Paragraph(...);  
document.add(p);

我想将其转换为DeviceCMYK模式进行打印。 但在书中说:" iText不会将RGB颜色转换为CMYK"。

那么,如何解决这个问题呢? 必须将每个img,文本转换为CMYK颜色或隐藏所有文件pdf?

我在谷歌搜索并找到一些建议: 他们使用lib:Jmagic / JAI ......(ICC Color Profiles)

ICC Color Profiles : http://stackoverflow.com/questions/22298328/convert-rgb-png-to-cmyk-jpeg-using-icc-color-profiles
JAI : http://stackoverflow.com/questions/4472362/how-can-i-convert-an-rgb-image-to-cmyk-and-vice-versa-in-java

你有什么建议吗?

更新1:

我的代码如下:

// PdfContentByte pdfCB = new PdfContentByte(writer);
// read buffer image (png or jpec) from link 
BufferedImage rgbImage = ImageIO.read(new URL(imageLink));
BufferedImage cmykImage = null;
ColorSpace cpace = new ICC_ColorSpace(ICC_Profile.getInstance(this.class.getClassLoader()
        .getResourceAsStream("OffsetEuroU360K85V25PO4.icc")));
ColorConvertOp op = new ColorConvertOp(rgbImage.getColorModel().getColorSpace(), cpace, null);
cmykImage = op.filter(rgbImage, null);
// write buffered image to local file
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(cmykImage, "jpg", baos);
baos.flush();
byte[] resultImageAsRawBytes = baos.toByteArray();
baos.close();
JAI.create("filestore", cmykImage, "/root/CMYK_IMAGE" + no + ".TIF", "TIFF");
// Add image to document
Image img = Image.getInstance(resultImageAsRawBytes);
// Image img = Image.getInstance(pdfCB, cmykImage, 1);
img.tagICC(com.itextpdf.text.pdf.ICC_Profile.getInstance(PBPMSItextExport.class.getClassLoader()
        .getResourceAsStream("OffsetEuroU360K85V25PO4.icc")));
document.add(img);

结果错误:

java.io.IOException: The byte array is not a recognized imageformat.
com.itextpdf.text.Image.getInstance(Image.java:442)
com.itextpdf.text.Image.getInstance(Image.java:348)

但保存在本地文件中的图像是CMYK颜色。

如何通过输入实现iText的实例图像是BufferedImage?

RGB中原始img的链接: http://www.mediafire.com/view/jlbc67q5gs2l3bj/00.png

img的链接被转换并保存到本地: http://www.mediafire.com/view/a8lw5yhlcww9qbm/CMYK_IMAGE3.TIF

0 个答案:

没有答案