PDFBox为什么图像未显示在PDF输出中?

问题描述 投票:0回答:1

我(我认为)正确地遵循了https://memorynotfound.com/apache-pdfbox-add-image-pdf-document/的指示:

我正在尝试插入图像logo.png。该代码运行并且不会引发任何错误,但是生成的PDF不包含图像!文本确实按预期方式显示。有谁知道这是为什么以及如何解决?我在Apache NetBeans 11中使用Java 8。

谢谢。这是代码:


    public void generate(File samplefile) throws IOException {
        PDDocument document = new PDDocument();
        //Adding the blank page to the document
        //Repeat this next line for further pages
        PDPage page = new PDPage();
        document.addPage(page);
        File dir = new File(ArdenRecord.sadd + "/Sample Reports");
        if (!dir.exists()) {
            dir.mkdir();
        }
        String fname = samplefile.toString().split("\\.")[0].split("\\\\")[2];
        File f = new File(ArdenRecord.sadd + "/Sample Reports/" + fname + ".pdf");
        File imfile = new File(ArdenRecord.sadd + "/logo.png");

        PDImageXObject pdImage = PDImageXObject.createFromFile(imfile.toString(), document);

        PDPageContentStream contents = new PDPageContentStream(document, page);
        PDRectangle mediaBox = page.getMediaBox();

        float startX = (mediaBox.getWidth() - pdImage.getWidth()) / 2;
        float startY = (mediaBox.getHeight() - pdImage.getHeight()) / 2;
        contents.drawImage(pdImage, startX, startY);

        contents.beginText();
        contents.newLineAtOffset(25, 700);
        contents.setFont(PDType1Font.TIMES_ROMAN, 12);
        BufferedReader br = new BufferedReader(new FileReader(samplefile));

        String st;
        int n = 0;
        while ((st = br.readLine()) != null) {
            if (n < 4 || n > 20 && n < 30) {
                contents.showText(st);
                contents.newLineAtOffset(0, -18);
            }
            n++;
        }

        contents.endText();
        contents.close();

        document.save(f);
        document.close();

        Desktop.getDesktop().open(f);
    }


}```

我(我认为)正确地遵循了以下指示:https://memorynotfound.com/apache-pdfbox-add-image-pdf-document/我正在尝试插入图像logo.png。该代码可以运行,但不会...

java netbeans pdfbox
1个回答
0
投票

也许您的代码没有错。我在文本文件中使用PDFBox 2.0.17,OpenJDK 8,this PNG fileLorem Ipsum的第一章进行了复制粘贴,编译和测试。请参见下面的结果(Adobe Reader屏幕截图)。

© www.soinside.com 2019 - 2024. All rights reserved.