2014-03-12 97 views
6

我需要將圖像(主要是JPEG)直接轉換爲PDF文檔的PDF頁面。
這可能是圖像大小不同。Java:使用PDFBox庫從圖像創建PDF頁面

每個PDF頁面都應該具有圖像的確切尺寸。
因此,每個頁面只包含全分辨率的圖像。

如何實現這一點,即將頁面設置爲圖像/內容的尺寸?
因爲我看到了不同頁面大小和方向的PDF文件,但PDFBox如何實現?

+0

也許這可以給你一個想法:http://stackoverflow.com/questions/10466569/create-pdf-from-a-png-image - 或 - java面板 – Frakcool

+0

好吧,它不是PDFBox,我認爲我們必須在PDFBox中的圖像之前創建頁面,也Gnostice PDFOne不是開源或免費 –

+0

好吧,不PDFBox,但與PDFBox,你也可以製作緩衝圖像,這就是爲什麼我說「給你一個想法」,讓我看看我是否可以做出正確的東西 – Frakcool

回答

19

我已經用下面的代碼解決了這個:

PDDocument document = new PDDocument(); 
InputStream in = new FileInputStream(someImage); 
BufferedImage bimg = ImageIO.read(in); 
float width = bimg.getWidth(); 
float height = bimg.getHeight(); 
PDPage page = new PDPage(new PDRectangle(width, height)); 
document.addPage(page); 
PDXObjectImage img = new PDJpeg(document, new FileInputStream(someImage)); 
PDPageContentStream contentStream = new PDPageContentStream(document, page); 
contentStream.drawImage(img, 0, 0); 
contentStream.close(); 
in.close(); 

document.save("test.pdf"); 
document.close(); 
+1

類似的情況在PDFBox的例子:https://svn.apache.org/repos/asf/pdfbox/trunk/examples/src/main/ java/org/apache/pdfbox/examples/pdmodel/AddImageToPDF.java 它使用較新的PDFBox 2+ API – user1053510