使用FOP 1.1和Java,图像不会以PDF格式显示

时间:2013-01-04 20:10:16

标签: java apache-fop

我一直在搜索谷歌,似乎无法找到我的问题的解决方案......

我正在使用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文件运行时是什么阻止显示图像...

提前致谢! (希望)

德文

2 个答案:

答案 0 :(得分:0)

语法

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

对我来说非常好,无论是来自Eclipse还是来自JAR。已经弄明白问题是什么?

答案 1 :(得分:0)

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

  1. 开发和部署环境中的JVM之间的区别(对我来说是原始的太阳......错误的oracle与ibm websphere捆绑的java)
  2. IBM JVM不喜欢索引的PNG文件。只要我将它转换为RGB就可以了。
  3. 以下是我使用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)

    希望这有助于其他人!