java - 使用 Flying Saucer 解析 protected 资源(ITextRenderer)

标签 java pdf resolve flying-saucer xhtmlrenderer

我正在使用 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/

相关文章:

java - tomcat服务每次重启都要部署war文件吗

java - 如何在 Windows 2008 上将 64 位 Java ODBC 驱动程序与 Access 数据库一起使用?

php - php 合并 pdf 后缺少可填写的表单值

java - "cannot be resolved to a type"是什么意思,我该如何解决? Java 安卓 4.0

node.js - NodeJS中promise如何通过多层回调解析所有数据

java - 不同类中不同类型的数据

java - 通过 Java 的远程 Powershell 脚本

java - Jasper Report - 在 PDF 文档中设置作者属性

image - 将长图像转换为页面 pdf

svn - Subversion 快速解决所有冲突