从本地计算机移动文件时,使用 PDFBox 生成的 PDF 中的图像消失
Image in PDF generated with PDFBox disappears when file is moved from local machine
我一直在使用 JPEG 文件生成 PDF 并在顶部添加徽标。 PDF 中的图像在我的本地计算机上显示正常 (OS X)。但是,一旦我将文件发送到其他任何地方,图像就不会再出现。我正在使用 java 和 PDFBox 生成 PDF。
PDPageContentStream contentStream = ...;
PDDocument document = ...;
PDImageXObject image = PDImageXObject.createFromFile("image.jpg", document);
contentStream.drawImage(image, 50, 700, 250, 67);
从 1.8.11 升级到 2.0.0 后,我通过更改将图像添加到 PDF 的方式设法解决了这个问题。
PDPageContentStream contentStream = ...;
PDDocument document = ...;
InputStream imageStream = this.getClass().getClassLoader().getResourceAsStream("image.jpg");
PDImageXObject image = JPEGFactory.createFromStream(document,imageStream);
contentStream.drawImage(image, 50, 700, 250, 67);
关键似乎是使用:
JPEGFactory.createFromStream()
而不是:
PDImageXObject.createFromFile()
我一直在使用 JPEG 文件生成 PDF 并在顶部添加徽标。 PDF 中的图像在我的本地计算机上显示正常 (OS X)。但是,一旦我将文件发送到其他任何地方,图像就不会再出现。我正在使用 java 和 PDFBox 生成 PDF。
PDPageContentStream contentStream = ...;
PDDocument document = ...;
PDImageXObject image = PDImageXObject.createFromFile("image.jpg", document);
contentStream.drawImage(image, 50, 700, 250, 67);
从 1.8.11 升级到 2.0.0 后,我通过更改将图像添加到 PDF 的方式设法解决了这个问题。
PDPageContentStream contentStream = ...;
PDDocument document = ...;
InputStream imageStream = this.getClass().getClassLoader().getResourceAsStream("image.jpg");
PDImageXObject image = JPEGFactory.createFromStream(document,imageStream);
contentStream.drawImage(image, 50, 700, 250, 67);
关键似乎是使用:
JPEGFactory.createFromStream()
而不是:
PDImageXObject.createFromFile()