3

PDF フォーム BMP を生成すると、結果は常に興味深いものになります。

「helloworld.bmp」と入力

入力ファイル: helloworld.bmp

アウトプット(該当部分のみ) 結果ファイル

  • なぜ品質が落ちるのか
  • なぜ3回繰り返されるのか
  • 黒い四角があるのはなぜですか (緑のフレーム)

私がそれをテストする方法は次のとおりです。

@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 です

4

0 に答える 0