0

我已经在 .NET 中成功编译并使用了 FOP 1.0 和 IKVM 0.44.5,但是我无法让它在生成的 PDF 中显示任何图像。

当我在命令行中通过 ikvm 运行 FOP 时,我得到一个 java.io.EOFException。当我使用 java 转换同一个文件时,图像完美地显示出来。

java.lang.reflect.UndeclaredThrowableException
    at $Proxy0.readUTF(Unknown Source)
    at java.lang.reflect.Method.invoke(Method.java:612)
    at org.apache.xmlgraphics.image.loader.util.ImageUtil$1.invoke(ImageUtil.java:246)
    at $Proxy0.readUTF(Unknown Source)
    at com.sun.imageio.plugins.png.PNGImageReader.parse_iTXt_chunk(PNGImageReader.java:469)
    at com.sun.imageio.plugins.png.PNGImageReader.readMetadata(PNGImageReader.java:710)
    at com.sun.imageio.plugins.png.PNGImageReader.getImageMetadata(PNGImageReader.java:1543)
    at org.apache.xmlgraphics.image.loader.impl.imageio.PreloaderImageIO.preloadImage(PreloaderImageIO.java:71)
    at org.apache.xmlgraphics.image.loader.ImageManager.preloadImage(ImageManager.java:176)
    at org.apache.xmlgraphics.image.loader.cache.ImageCache.needImageInfo(ImageCache.java:128)
    at org.apache.xmlgraphics.image.loader.ImageManager.getImageInfo(ImageManager.java:122)
    at org.apache.fop.fo.flow.ExternalGraphic.bind(ExternalGraphic.java:81)
Caused by: java.io.EOFException
    at javax.imageio.stream.ImageInputStreamImpl.readFully(ImageInputStreamImpl.java:346)
    at java.io.DataInputStream.readUTF(DataInputStream.java:607)
    at javax.imageio.stream.ImageInputStreamImpl.readUTF(ImageInputStreamImpl.java:332)
    ... 49 more

有没有人使用 FOP+IKVM 让图像工作?任何帮助或解决方案的指针将不胜感激!

4

1 回答 1

1

我对 FOP 了解不多,但一个简单的图像示例有效:

C:\j\fop-1.0>set JAVACMD=\ikvm-0.44.0.5\bin\ikvm.exe
C:\j\fop-1.0>fop -fo examples\fo\basic\images.fo -pdf images.pdf

这会生成一个看起来不错的 images.pdf。

如果您对此有重现场景,请随时将其邮寄给我(jeroen@frijters.net),我会看看。

更新:感谢导致问题的 .png。我用 0.44 重现了这个问题,但在当前的开发版本中它可以正常工作。最新的开发快照可在http://weblog.ikvm.net/获得

于 2011-02-16T13:34:11.530 回答