1

我已经通过谷歌搜索了一遍又一遍,似乎无法找到解决我问题的方法......

我正在使用 Apache FOP 1.1 和 Java 从 Java 类生成 PDF 文件。这个 Java 项目从一个 JAR 文件运行。我正在使用 JAR 本身外部的图像。用于生成 PDF 的 XSL 文件包含以下内容:

<fo:external-graphic src="file:///C:/images/image.jpg" width="7.5in" />

基于大量搜索/阅读,我尝试了 src 属性的许多不同变体:

src="file:///C:/images/image.jpg"
src="C:/images/image.jpg"
src="url('file:///C:/images/image.jpg')"
src="url('C:/images/image.jpg')"

都没有成功...

现在,这是令人困惑的部分。我正在从 Eclipse IDE 进行开发,并且在使用 src 属性的变体时:

src="C:/images/image.jpg"
src="url('C:/images/image.jpg')"

PDF 已正确创建并嵌入了图像。

从 JAR 文件运行时,我无法弄清楚是什么阻止了图像的显示...

提前致谢!(希望)

德文

4

2 回答 2

0

我知道这是一个旧线程,但我遇到了类似的问题,最终找到了部分修复。这是两件事的组合:

  1. 开发环境和已部署环境中的 JVM 之间的区别(对我来说,原始 sun ... err oracle vs. ibm websphere bundled java)
  2. IBM JVM 不喜欢索引的 PNG 文件。一旦我将它转换为 RGB,它就可以工作了。

这是我使用 websphere jvm 手动运行 fop.bat 文件时收到的错误消息:

SEVERE: Image not available. URI: /tmp/image.png. Reason: org.apache.xmlgraphics.image.loader.ImageException: I/O error while extracting image metadata: Error reading PNG metadata (See position 30:182)

顺便说一句,我使用的是 fop 1.0 + java 1.6 + WAS 7.0 (java 1.6)

希望这对其他人有帮助!

于 2014-01-07T18:20:56.690 回答
0

语法

<fo:external-graphic src="url('C:/images/image.jpg')" content-height="100%" content-width="100%"/>

无论是来自 Eclipse 还是来自 JAR,对我来说都非常适合。找出问题所在了吗?

于 2013-07-01T08:10:29.957 回答