使用PDFBox将BufferedImage写入PDF的推荐方法是什么?

时间:2015-10-02 13:36:03

标签: java bufferedimage pdfbox

我正在尝试使用Apache ImagingPDFBox将TIFF转换为PDF。我尝试的所有内容都会产生一个空白(但非零字节)的pdf。

我尝试过的其他SO问题中有一些例子,例如Add BufferedImage to PDFBox documentPDFBox draw black image from BufferedImage

我知道我从TIFF读取的缓冲图像是有效的,因为我可以显示它并在JFrame中看到它。

我还尝试过PDFJpeg而不是PDFPixelMap,而contentStream.drawImage()而不是.drawXObject(),结果总是一样的。

我还尝试在内容流之前创建PDXObjectImage并按Can't add an image to a pdf using PDFBox中的建议编写多个图像,结果仍然相同。我多次写图像时输出文件较大,所以它正在做“某事”,但我不知道它是什么。

如何使用PDFBox将BufferedImage写入PDF上的页面?

try(PDDocument document = new PDDocument();ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) 
{

    PDPage blankPage = new PDPage();
    document.addPage( blankPage );
  //  PDXObjectImage pdImage = new PDJpeg(document, image);
    PDXObjectImage pdImage = new PDPixelMap(document, image);
  //  contentStream.drawImage(pdImage, 5, 300);
    PDPageContentStream contentStream = new PDPageContentStream(document, blankPage);
    contentStream.drawXObject(pdImage, 5, 5, 100, 100);
    document.save("test.pdf");
    contentStream.close();
}
catch(COSVisitorException ex) {
    throw new IOException(ex);
}

0 个答案:

没有答案