PdfBox:从bmp创建pdf时出现的问题

时间:2013-02-28 08:45:13

标签: java bitmap pdfbox

生成PDF格式的BMP时,结果总是好奇。

输入“hellowworld.bmp”

Inputfile: helloworld.bmp

输出(仅相关部分) resultfile

  • 为什么会有质量下降
  • 为什么重复三次
  • 为什么会出现黑色正方形(绿色框架)

以下是我如何测试它:

@Test
public final void testWriteSingleBMPtoPDF() throws IOException {
    Assert.assertTrue("File existst", TestFileHelper.getBMP(BMPS.HELLOWORLD).exists());
    Assert.assertTrue("File readable", TestFileHelper.getBMP(BMPS.HELLOWORLD).canRead());
    ArrayList<File> doc = new ArrayList<EncodedPage>();
    doc.add(createPage(BMPS.HELLOWORLD));
    File result = null;
    try {
        result = ConvertPDF.bmpToPDF(doc);
    } catch (COSVisitorException e) {
        e.printStackTrace();
    }
    Assert.assertTrue("File existst", result.exists());
    Assert.assertTrue("File readable", result.canRead());
    System.out.println("Please Check >"+result+"<");
}

这是我的java实现的一部分

public static File bmpToPDF(ArrayList<File> inputDoc)
        PDDocument document = new PDDocument();
        String saveTo = "C:\\temp\\" + System.currentTimeMillis() + ".pdf";
        for (File bmpPage : inputDoc) {
            PDPage page = null;
            PDXObjectImage ximage = null;
            page = new PDPage();
            document.addPage(page);
            BufferedImage awtImage = ImageIO.read(bmpPage);
            ximage = new PDPixelMap(document, awtImage);
            PDPageContentStream content = new PDPageContentStream(document, page);
            content.drawImage(ximage, 0, 0);
            content.close();
        }
        document.save(saveTo);
        document.close();
return new File(saveTo) ;

Apache PDFBox的版本是1.7.1

0 个答案:

没有答案