Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PDFBox为什么图像不显示在PDF输出中?_Java_Netbeans_Pdfbox - Fatal编程技术网

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

Java PDFBox为什么图像不显示在PDF输出中?,java,netbeans,pdfbox,Java,Netbeans,Pdfbox,我认为我正确地遵循了以下说明: 我正在尝试插入一个image logo.png。代码运行时不会抛出任何错误,但生成的PDF不包含图像!文本确实按预期显示。有人知道为什么会这样,以及如何修复它吗? 我在ApacheNetbeans11中使用Java8 谢谢。代码如下: public void generate(File samplefile) throws IOException { PDDocument document = new PDDocument();

我认为我正确地遵循了以下说明:

我正在尝试插入一个image logo.png。代码运行时不会抛出任何错误,但生成的PDF不包含图像!文本确实按预期显示。有人知道为什么会这样,以及如何修复它吗? 我在ApacheNetbeans11中使用Java8

谢谢。代码如下:


    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);
    }


}```


也许你的代码没有问题。我复制粘贴删除。拆分\\\\\[2]以获得正确的路径,使用PDFBox 2.0.17、OpenJDK 8和文本文件中的第一章对其进行编译和测试。请参见下面的Adobe Reader屏幕截图


至少您应该尝试使用不同的PNG文件。

请共享结果PDF文件和源图像。同时确保您使用的是最新版本2.0.17。