2

我正在寻找一个可以获取图像(PNG)并创建 PDF 的 Java 库。或者直接从已绘制的 Java 面板创建 PDF。

4

2 回答 2

1

您可以使用 Gnostice PDFOne for 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 工作。

于 2012-05-08T06:27:39.217 回答
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);
于 2013-02-09T20:22:05.857 回答