flyingsaucer生成的pdf中servlet的java渲染图像
我使用flyingsaucer通过一个servlet将xhtml文档呈现为pdf,该servlet返回生成的pdf文档。xhtml文档具有一个从另一个servlet请求的图像。在返回相应的图像之前,图像servlet会检查谁已登录。下面的代码显示了如何请求图像:
<img height="140" width="140" src="http://localhost:8080/myapp/servlet/DisplayPic" />
我的问题是,对图像的http请求来自pdf呈现程序,而不是登录的用户,因此图像servlet不知道谁登录了,因此不会返回所需的图像
我目前正在使用下面的代码呈现xhtml文档:
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(xhtmlDocumentAsString);
renderer.layout();
os = response.getOutputStream();
renderer.createPDF(os);
我需要在请求image servlet时维护用户的会话,或者为渲染器提供用于特定xhtml元素的图像。我认为后者可以使用ReplacedElementFactory
实现,但我还没有找到任何可以帮助我的示例代码
# 1 楼答案
我现在做得很好。这是密码
在我的xhtml文档中,我有:
(我使用的是
div
元素,而不是img
,因为工厂只用于块级元素)我使用以下方式呈现我的文档:
我有自己的
ReplacedElementFactory
如下: