使用 FOP 中的 OutputStream 渲染图像

2024-01-15

我想在 PDF 上渲染图像,该图像将由 FOP 生成。为了渲染图像,我使用标签<fo:external-graphic>如下 :

<fo:external-graphic src="url('../offlinePaper/displayImage?disImg=4bec89f0-5b97-40c3-b7c9-ac555a664df8')" inline-progression-dimension.maximum="100%"  content-height="scale-down-to-fit" content-width="scale-down-to-fit"> </fo:external-graphic>

我还尝试提供完整的 URL:

<fo:external-graphic src="http://10.2.10.79/Web/offlinePaper/displayImage?disImg=e391d672-ebf4-44d8-86cb-2cf987a50bf7" inline-progression-dimension.maximum="100%"  content-height="scale-down-to-fit" content-width="scale-down-to-fit"> </fo:external-graphic>

在控制器中我有一个请求映射(../offlinePaper/displayImage)它采用图像名称disImg from getParameter并解密图像并返回OutputStream.

但是当我生成 PDF 时,我发现日志文件中出现错误:

Image not available. URI: http://10.2.10.79:80/Web/offlinePaper/displayImage?disImg=4bec89f0-5b97-40c3-b7c9-ac555a664df8. Reason: org.apache.xmlgraphics.image.loader.ImageException: The file format is not supported. No ImagePreloader found for http://10.2.10.79:80/Web/offlinePaper/displayImage?disImg=4bec89f0-5b97-40c3-b7c9-ac555a664df8 (No context info available)

但是,如果我复制此 URL 并粘贴到 URL 中,则图像会显示在浏览器中,并且我还发现,当我生成 PDF 时,应该调用图像解密的请求映射不会被调用。

Update

还有一个奇怪的想法,我开始知道,如果网络服务器是,使用相同的代码 PDF 会成功生成Tomcat但如果我将应用程序部署在Glassfish它给出了错误。


在异常跟踪中:

ImageException:不支持该文件格式

FO 似乎能够找到一个ImagePreloader根据文件扩展名。如果找不到任何东西,它就会崩溃。

我建议更改 url 的构建方式。应该包含真实的图像文件名。

所以,而不是:

../offlinePaper/displayImage?disImg=4bec89f0-5b97-40c3-b7c9-ac555a664df8

try

../offlinePaper/displayImage/disImg4bec89f0-5b97-40c3-b7c9-ac555a664df8.jpg

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 FOP 中的 OutputStream 渲染图像 的相关文章

随机推荐

  • Django 2.0 url() 到 path()

    我目前正在学习 Django 到目前为止 我使用的是 Django 1 1 但现在我使用的是 Django 2 0 Django 2 0 使用 path 而不是 url 我不太明白这一点 在 Django 1 1 中 我的网址如下所示 ur
  • Google Place Autocomplete 未显示在 Bootstrap 模式中

    修复更新 看来我初始化盒子的方式引起了问题 这是修复它的方法 更新 我已经将代码更新为非常简单 原因是http jsf
  • Grammar::parameterize() 必须是数组类型

    我收到这个错误 传递给 Illuminate Database Grammar parameterize 的参数 1 必须是数组类型 给定字符串 当我尝试添加时array 在我的视图中使用选择表单 但当我删除它时 我没有收到任何错误 我只是
  • 从 ini 文件的特定部分读取特定键(sed/awk?)

    我需要从具有典型结构的 ini 文件中检索键的值 abcd key1 a key2 b efgh key1 c key2 d hijk key1 e key2 f 键名称在不同部分中重复 并且各部分没有一致的命名 顺序 我怎样才能从 efg
  • 同一键下有多个值的 HashMap

    是否可以实现一个键两个值的HashMap 就像 HashMap 一样 如果没有 是否有其他方法来实现多个值的存储 例如一个键两个值 你可以 使用具有列表作为值的地图 Map
  • 如何使用补丁相对路径进行模拟?

    我在 python 测试文件中有这样的东西 from mock import patch from monkey import ook patch monkey ook Mock return value None def test run
  • 无法使用新的 Windows 终端在 WSL2 中启动 Docker

    我最近安装了 WSL2 并从 Microsoft Store 安装了 Ubuntu 当我使用以下命令运行 docker 时 sudo service docker start 我收到以下消息 Cannot connect to the Do
  • Rails 中脚手架和模型的区别

    在 Rails 中生成脚手架和生成模型有什么区别 这样做的优点 缺点是什么 当您生成模型时 您会获得一个模型以及一些相关组件 我最喜欢的解释此类主题的方法之一是实际尝试或鼓励其他人尝试 所以如果我输入命令rails generate mod
  • 如何使用 RSpec 测试实例变量在控制器中实例化

    我正在尝试检查 RESTful 控制器中的新操作是否设置了所需对象类型的实例变量 看起来很典型 但执行起来遇到困难 客户端控制器 def new client Client new end Test describe GET new do
  • MongoDB 中的两阶段提交

    仔细阅读后在线文档 http docs mongodb org manual tutorial perform two phase commits 我对MongoDB中的两阶段提交还有很多疑问 在本节中从故障场景中恢复 为什么只有两类失败
  • 反映.net中的常量属性/字段[重复]

    这个问题在这里已经有答案了 我有一个类 如下所示 public class MyConstants public const int ONE 1 public const int TWO 2 Type thisObject public M
  • 镜像(翻转)视图/进度条

    我有一个定制的圆形进度条 用于时钟上的秒计数器 我想翻转它 以便时钟逆时针计数 在这里搜索解决方案 我发现了这个 从右到左进度条 https stackoverflow com questions 3877823 right to left
  • 如何验证 PAC(代理自动配置)文件内的 Socks 5 代理

    如何设置 PAC 文件以使用带有身份验证的 SOCKS 代理 使用这个简单的 PAC 文件作为示例 function FindProxyForURL url host return SOCKS 69 123 133 75 7257 您将如何
  • 尝试向按钮添加触发器以更改按钮的 Content 属性

    我有一个用户控件 上面有一个按钮 UserControl 有一个名为 IsNew 的 DependencyProperty 这是一个布尔值 如果在控件中编辑的对象是新创建的并且尚未写入数据库 则该值设置为 true 否则就是假的 我有一个按
  • 如何使用python识别中文或英文名字[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定一堆名字 我们如何找出哪些是中文名 哪些是英文名 对于中文名字 我建立了一个中文姓氏列表来找出中文名字 比如李小龙 李是中国姓氏
  • Chrome 扩展程序安装

    我有 chrome 扩展 它是使用安装程序安装的 该安装程序安装一些进程和浏览器扩展 根据 chrome 安全性更改 独立安装将被阻止 谷歌将阻止本地 Chrome 扩展程序 http thenextweb com google 2013
  • Webkit 浏览器根据 colspan 渲染表格

    请告知我是否出现幻觉 我希望如此 因为我无法根据浏览器正确渲染表格 我希望有人能为我提供解决方案 我的问题是 某些表格在使用 webkit 的浏览器 即 Safari 和 Chrome 中不显示右侧边框 根据帮助下的关于菜单项 我使用的 S
  • VBA 使用 OFT 模板从 Excel 发送电子邮件 - 禁止自动签名

    我创建了一个宏 用于打开 Outlook 电子邮件模板以供用户发送 以及从电子表格中提取的一些附加信息 一切都很顺利 只是 Outlook 会根据用户设置自动附加签名 虽然我可以很容易地关闭自己的签名 但我并不是唯一可能运行此宏的人 电子邮
  • “docker ps -a”是什么意思?

    经常使用 Docker 的任何人都熟悉常用命令docker ps and docker ps a 我知道docker ps列出了 Docker 引擎中所有正在运行的容器 但是 ps 实际上意味着什么 我也知道docker ps a具有还列出
  • 使用 FOP 中的 OutputStream 渲染图像

    我想在 PDF 上渲染图像 该图像将由 FOP 生成 为了渲染图像 我使用标签