当前位置: 首页 > 知识库问答 >
问题:

未找到图像预加载程序-使用FOP将XML转换为PDF

仲孙兴平
2023-03-14

我正在尝试从xml数据创建pdf。我在Windows中使用Apache FOP 1.1 for Java。应用程序在Eclipse中运行得很好,但是当我试图从导出的。jar图像不放在PDF中。我尝试在cdm上运行它,以便查看运行时的日志。例外情况如下:

GRAVE: Image not available. URI: out/iberdrola.png. Reason: org.apache.xmlgraphics.
     image.loader.ImageException: The file format is not supported. No ImagePreloader
     found for out/iberdrola.png (No context info available) org.apache.xmlgraphics.
     image.loader.ImageException: The file format is not supported. 
     No ImagePreloader found for out/iberdrola.png
at org.apache.xmlgraphics.image.loader.ImageManager.preloadImage(ImageManager.java:180)

我必须解释,即使这是一个例外,程序也会一直运行到最后,并呈现PDF,但没有图像。

我已经尝试了一些不同的方法来解决这个问题,但没有成功。我在googled上搜索的很多信息都与servelt有关,但我并没有为servelt编程。顺便说一句,在这里我给你两个不同的解决方案,它们对其他人也有效。它们是相关的,但我想程序是不同的。我不知道如何尝试,谁能更好地解释给我听?即使解释清楚了,也一定有我遗漏的步骤。

http://Apache-FOP . 1065347 . n5 . nable . com/FOP-1-0-images-fail-to-render-TD 7348 . html

Java Applet中的Apache FOP-未找到数据的ImagePreloader

我也对这个问题的任何其他解决方案持开放态度。

谢谢建议!有好看的代码!

共有1个答案

闾丘成礼
2023-03-14

我终于想出了解决方案。我不知道我所做的两个步骤中到底是解决了所有问题的步骤,但它就在这里。

首先,我改变了项目的库。我意识到我使用的fop_1.1.jar不是Apache提供的官方版本。所以我去了官方网站下载了二进制版本。我在我的构建路径中添加了fop库和名为“lib”的文件夹的其余依赖库。

然后,我增加了Java的编译版本。我使用的是1.4版本,许多使用的库需要1.5或以上。所以当我意识到现在大多数计算机使用1.7或以上时,我把它设置为1.7。

我不能告诉你这两个解决方案中的哪一个创造了这个奇迹,但对于进一步的项目,我会先检查我是否使用了正确的库,并且我必须检查最低编译版本。

有一个不错的代码!

 类似资料:
  • 我正在尝试使用带有xslt的外部图形来生成PDF。大多数图像都工作正常,但偶尔会有一张“找不到”,尽管可以在Web浏览器上查看。FOP吐出的错误如下: 这是我的外部图形部分: 知道我做错了什么吗? 编辑:看起来这个问题与服务器不允许访问自动请求有关。有没有办法在fop 2.1中设置用户代理的URIResolver?这一功能似乎存在于以前的版本中,但我似乎找不到一种在2.1中实现的方法。

  • 我已经将FOP版本从fop 1.1升级到fop 2.3,但是 org.apache.fop.events。未找到LoggingEventListener processEvent Image。 以下是为升级而修改的代码片段。使用fop 2.3主控查看代码 法典: 查看fop 2.3的代码 XSLT 代码

  • 问题内容: 该医生说:。因此,正如我所言,我已经将自己放在文件夹中,然后尝试从文件中加载。现在我有2个错误:1)来自:。2)来自我: webpack.config.js 如果我看到自己的代码,则可以清楚地看到css位于内部,因此正如文档所述,我已将映像的路径指向了根目录,但仍然无法修复。 更新: 我已经安装并按照说明进行操作,现在在控制台中收到此错误: 问题答案: 为了解决这个问题,我已经上传了这

  • 问题内容: 我在下面编写的功能是否足以在当今大多数(如果不是全部)浏览器中预加载图像? 我有一个图像URL数组,可以循环访问这些URL,并为每个URL 调用该函数。 问题答案: 是。这应该适用于所有主要的浏览器。

  • XML输入文件: XML输入文件转换为XML输出文件。将XML输入文件的firstName、middleName和lastName标签合并为XML Ouput文件的name标签,将XML输入文件的address1、address2、city、state和pincode标签合并为XML Ouput文件的address标签。 我几乎转换了代码,但我在这里与empId作斗争。我已经在XSLT文件中手动输

  • 问题内容: 我想将PDF页面转换为图像(PNG,JPEG / JPG或GIF)。我希望它们有整页尺寸。 使用Java如何做到这一点?哪些库可用于实现此目的? 问题答案: 您将需要一个PDF渲染器。市场上有一些或多或少的好工具(ICEPdf,pdfrenderer),但是如果没有,您将不得不依靠外部工具。免费的PDF渲染器也无法渲染嵌入的字体,因此仅适用于创建缩略图(您最终想要的)。 我最喜欢的外部