2014-10-03 52 views
4

我不得不將圖像打印成「PDF」使用下面的代碼:PDFBOX JPG圖像是工作,但PNG不工作

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它沒有。爲什麼是這樣?請幫幫我。我怎樣才能打印兩種格式,我的意思是格式取決於?

+3

所以基本上,你試圖使用功能PDJpeg與PNG圖像? – usr2564301 2014-10-03 14:21:19

+1

@Jongware是老兄,笏更改我需要使它接受PNG也?? – androidGenX 2014-10-04 04:23:51

回答

10

在Apache中PDFBox的1.8,使用PDPixelMap PNG圖像:

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

在PDFBox的源代碼,請參見ImageToPDF.java例子。這將適用於所有可以使用ImageIO讀取的文件。但是,繼續使用PDJpeg for JPG圖像仍然很有用,因爲在那裏JPEG文件直接放入PDF文件而不會被轉換爲無損格式。

+0

會試試哥們感謝您的幫助! – androidGenX 2014-10-04 06:02:17

+0

我試過不工作的朋友 – androidGenX 2014-10-06 04:32:50

+1

你按下綠色的符號,你寫它不工作?什麼不起作用? – 2014-10-06 17:25:01

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

我懷疑你的答案是爲Android。你應該提到這一點,並提及哪個版本。 – 2017-03-07 18:51:54