我正在使用 Flying Saucer 从托管在 tomcat 服务器上的 xhtml 创建 pdf。 pdf 中包含的大部分图像都是公开可用的( Logo 等),但其中一些图像在登录后受到保护(也就是说,如果用户已登录,它们将通过 servlet 流式传输)。
当我将 url 粘贴到浏览器中时,图像当然可以正常显示,因为浏览器会发送带有请求的 session 。但是当 Flying Saucer 呈现 pdf 时,它不包含 protected 图像,因为它对 session 一无所知。
所以,我的问题是;有什么方法可以包含 Flying Saucer 解析的字节流,就像可以添加可解析的字体一样?我试过类似 this 的东西,但没有简单的方法在 ITextRenderer 上设置 UAC,每次我尝试时它都会提示。
最佳答案
您可以这样设置 UserAgentCallback,Flying Saucer 将使用它来解析 url(已测试,适用于 Release 8):
ITextRenderer renderer = new ITextRenderer();
renderer.getSharedContext().setUserAgentCallback(new MyUAC());
MyUAC 应该扩展 NaiveUserAgent
,并按照其他页面的建议覆盖 resolveAndOpenStream
方法。
关于java - 使用 Flying Saucer 解析 protected 资源(ITextRenderer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4782876/