Java PDFBox为什么图像不显示在PDF输出中?
我认为我正确地遵循了以下说明: 我正在尝试插入一个image logo.png。代码运行时不会抛出任何错误,但生成的PDF不包含图像!文本确实按预期显示。有人知道为什么会这样,以及如何修复它吗? 我在ApacheNetbeans11中使用Java8 谢谢。代码如下: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();
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。