问题描述
下午好。我有一个JAR文件,我在其中将一些图像作为资源附加到了一个名为logos的文件夹中。由于安全限制,我被告知要这样做(我们不希望图像文件与JAR暴露在同一文件夹中)。我首先尝试加载这些图像,就像它们是File对象一样,但这显然行不通。我现在正在尝试使用InputStream将图像加载到所需的PDImageXObject中,但是图像未呈现到PDF中。这是我正在使用的代码的一个片段:
String logoName = "aLogoName.png";
PDDocument document = new PDDocument();
// the variable "generator" is an object used for operations in generating the PDF
InputStream logoFileAsStream = generator.getClass().getResourceAsStream("/" + logoName);
PDStream logoStream = new PDStream(document,logoFileAsStream);
PDImageXObject logoImage = new PDImageXObject(logoStream,new PDResources());
PDPage page = new PDPage(new PDRectangle(PDRectangle.A4.getHeight(),PDRectangle.A4.getWidth()));
document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document,page);
contentStream.drawImage(logoImage,500,100);
请注意,我已经验证资源已正确加载,因为使用logoFileAsStream.available()为各种徽标返回了一个不同的值。运行此代码后,实际上不会在PDF上绘制图像,并且打开该图像后,错误消息“此页面上存在错误。Acrobat可能无法正确显示该页面。请联系创建PDF文档的人以纠正问题。”出现。有人可以帮我弄清楚该代码段/从JAR作为资源加载我的图像的另一种解决方案有什么问题吗?非常感谢。让我知道是否需要更多/澄清的信息。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)