PDFBOX JPG图像工作但PNG无法正常工作

时间:2014-10-03 09:32:08

标签: java image png pdfbox

我已将图像打印成PDF' PDF'使用以下代码:

InputStream in = new FileInputStream(new File("C:/"+imageName));
PDJpeg img = new PDJpeg(doc, in);
contentStream.drawXObject(img, 20, pageYaxis-120, 80, 80);

这里当imagName =" a.jpg"它的工作正常,如果是imagName =" b.png"它不起作用。在jpg图像中它的工作但不是png。为什么会这样?请帮我。如何打印两种格式,我的意思是格式依赖?

2 个答案:

答案 0 :(得分:11)

在Apache PDFBox 1.8中,将PDPixelMap用于PNG图像:

BufferedImage awtImage = ImageIO.read(new File(image));
ximage = new PDPixelMap(doc, awtImage);

在PDFBox的源代码中,请参阅ImageToPDF.java示例。这适用于可以使用ImageIO读取的所有文件。但是,将JPJpeg用于JPG图像仍然很有用,因为JPEG文件直接放入PDF文件而不会转换为无损格式。

答案 1 :(得分:1)

Bitmap alphaImage = BitmapFactory.decodeStream(in);
PDImageXObject alphaXimage = LosslessFactory.createFromImage(document, alphaImage);