我已将图像打印成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。为什么会这样?请帮我。如何打印两种格式,我的意思是格式依赖?
答案 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);