1

我需要java.awt.BufferedImage使用 iText 将 CMYK 图像 () 添加到 Pdf 文档。

我正在尝试这样做:

com.lowagie.text.Image img = Image.getInstance(BufferedImage, bgColor);

这会在生成的 PDF 中生成 RGB 图像。(我认为这是一个错误,因为它只是忽略了ColorModel)。但是我可以使用:

com.lowagie.text.Image img = Image.getInstance(byte[] rawData);

它会在 PDF 中生成正确的 CMYK 图像。但对于第二种情况,我需要转换java.awt.BufferedImageByteArray. 我不能用ImageIO.write(ByteArrayOutputStream). 我也不能这样做,com.sun.image.codec.jpeg.JPEGImageEncoder因为我必须使用OpenJDK.

任何想法如何实现使用 iText 在 PDF 中编写 CMYK 图像的正确行为?

4

1 回答 1

2

所以基本上你要问的是如何将 a 转换BufferedImage为 abyte[]以打印为 PDF?

BufferedImage img; // your image to be printed
String formatName; // name of the image format (see ImageIO docs)
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write( img, formatName, baos);
byte[] rawData = baos.toByteArray();

您应该能够像在原始帖子中那样将其用于 CMYK 图像:

com.lowagie.text.Image img = Image.getInstance(byte[] rawData);
于 2012-06-11T18:13:05.100 回答