Написать изображение CMYK в PDF
Мне нужно добавить изображение CMYK (java.awt.BufferedImage
) в PDF-документ с помощью iText.
Я пытаюсь сделать это с:
com.lowagie.text.Image img = Image.getInstance(BufferedImage, bgColor);
Это создает изображение RGB в результирующем PDF. (и я предполагаю, что это ошибка, потому что она просто игнорирует ColorModel
). Однако я мог бы использовать:
com.lowagie.text.Image img = Image.getInstance(byte[] rawData);
И это производит правильный CMYK-изображение в PDF. Но для второго случая мне нужно конвертировать java.awt.BufferedImage
в ByteArray
, Я не могу сделать это с ImageIO.write(ByteArrayOutputStream)
, Я также не могу сделать это с com.sun.image.codec.jpeg.JPEGImageEncoder
потому что я должен использовать OpenJDK
,
Есть идеи, как мне добиться правильного поведения при записи изображения CMYK в PDF с помощью iText?
1 ответ
Итак, в основном вы спрашиваете, как преобразовать BufferedImage
к byte[]
напечатать в 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);