2012-05-05 69 views

回答

1

你可以做到这一点使用的Gnostice PDFOne为Java(http://www.gnostice.com/PDFOne_Java.asp)。

从下面找到从PNG图像创建PDF文档的代码片段。

PdfDocument doc = new PdfDocument(); 

// Read the image as BufferedImage object 
BufferedImage bufImg = ImageIO.read(new File(
    "SampleImage.PNG")); 

// Create PdfImage object using the above BufferedImage object 
PdfImage img = PdfImage.create(bufImg); 

// Create a PdfPage of image size (image width x image Height) 
PdfPage page1 = new PdfPage(img.width(), img.height()); 

// draw the image at 0, 0 
page1.drawImage(img, 0, 0); 

// add the page to the document object 
doc.add(page1); 

// save the document to the output file 
doc.save("PNGImageToPDF.pdf"); 
doc.close(); 

要从JPanel创建BufferedImage,您可以使用下面的代码片段。

int w = jpanel.getWidth(); 
int h = jpanel.getHeight(); 
BufferedImage bi = new BufferedImage(w, h, 
    BufferedImage.TYPE_INT_RGB); 
Graphics2D g2 = bi.createGraphics(); 
jpanel.paint(g2); 
g2.dispose(); 

从JPanel创建BuffereImage后,您可以使用第一个代码段创建PDF。

我希望你会觉得这很有用。

声明:我为Gnostice工作。

1

尝试xsPDF

BufferedImage image = ImageIO.read(new File(imageFileName)); 
int width = image.getWidth(), height = image.getHeight(); 
XSPDF.getInstance() 
.setPageSize(width, height) 
.setPageMargin(NO_MARGIN) 
.setImage(image, 0, 0, width, height, 0) 
.createPdf(pdfFileName);