在我的xhtml中,我有以下内容:
...
<img src="myImage.jpg" />
...我是这样渲染的:
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(XMLResource.load(in).getDocument(), url);
renderer.layout();
renderer.createPDF(out);生成的PDF和预期的一样,但是我注意到图像(它只包含在xhtml中一次,并且只渲染一次)被请求了4次。
现在,除了明显的额外数据下载的问题,这对大多数人来说并不是问题。
然而,我需要为动态图像实现一个“使用时过期”的图像缓存,这真的是一个令人头疼的问题……
如果只渲染一次,为什么飞碟需要对图像进行4次请求?
发布于 2010-07-30 16:14:43
我刚刚看过了代码,这里没有解决方案(如果不重写itext和飞碟的话)。
第一次打开流只是为了测试它是否可以打开,不读取数据。
第二次是读取报头以确定文件类型,只读取前4个字节。
第三次是itext确定图像的尺寸--我不确定,但我也不认为这里读到了太多标题。
最后一次读取是渲染图像。
所以下载的影响不是很大,4个url连接??是的,但是整个流只传输一次。
而我的“使用时过期”缓存将不得不改为“第四次使用时过期”。
发布于 2013-10-05 05:16:26
在最新版本的FlyingSaucer中已修复此问题。我已经确认了9.0.3,尽管我相信在此之前的几个小版本也包含了修复。
https://stackoverflow.com/questions/3369395
复制相似问题