2011-02-16 83 views
0

我已经成功地编译和使用了.NET中的IKVM 0.44.5的FOP 1.0,但是我无法让它在结果PDF中显示任何图像。与IKVM的FOP:没有图像

当我在命令行中通过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工作?任何帮助或指向解决方案将高度赞赏!

回答

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。

如果你有一个repro场景,请随时邮寄给我([email protected]),我会看看。

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

+0

原来,我使用的PNG无法通过.net实现读取......只要我尝试了示例,它就可以工作。所以我用示例图形取代了我的图像:也工作过。非常感谢您指向样本的指针! – wagi 2011-02-19 09:58:11