使用 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 渲染图像 的相关文章

  • 将处理项目移至 Eclipse

    我已经在处理项目上工作了一段时间 现在想将其移至 Eclipse 中 我已经在 Eclipse 环境中安装了 Proclipse 我有很多扩展名为 pde 的文件 然而 Proclipse 文件都以 java 结尾 所有 pde 文件都存在
  • 垂直 ViewPager 中的动画

    我需要垂直制作这个动画ViewPager https www youtube com watch v wuE 4jjnp3g https www youtube com watch v wuE 4jjnp3g 这是我到目前为止所尝试的 vi
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • Selenium 和 TestNG 同时使用“dependsOn”和“priority =”问题

    我正在努力在 GUI 自动化测试中实现更好的工作流程控制 我首先从dependsOn开始 但很快发现缺点是如果一个测试失败 则套件的整个其余部分都不会运行 所以我改用 priority 但看到了意外的行为 一个例子 Test priorit
  • Spring HATEOAS 和 HAL:更改 _embedded 中的数组名称

    我正在尝试使用 Spring HATEOAS 构建符合 HAL 的 REST API 经过一番摆弄后我终于开始工作了mostly正如预期的那样 示例 输出现在看起来像这样 links self href http localhost 808
  • 绘制平滑曲线

    我想创建更平滑的曲线 而不仅仅是线角 这是我现在画的图 这是我的代码 case FREEHAND float pts float ptk ptk new float 2 imageMatrix invert inv if mCurrentS
  • 在拇指上方显示修改后的 JSlider 值

    有没有一种简单的方法可以在使用某些 外观和感觉 的同时更改 JSlider 上方标签中显示的值 为了清楚起见 我正在谈论这个值 具体来说 我想显示除以 1000 的值而不是值本身 我知道如果我显示它们 我可以为刻度设置标签 但用户将不得不猜
  • 如何自动转换十六进制代码以将其用作 Java 中的 byte[]?

    我这里有很多十六进制代码 我想将它们放入 Java 中 而不需要向每个实体附加 0x 喜欢 0102FFAB 和我必须执行以下操作 byte test 0x01 0x02 0xFF 0xAB 我有很多很长的十六进制代码 有什么办法可以自动做
  • 但是创建静态实用方法不应该被过度使用吗?如何避免呢? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 随着时间的推移 java项目中引入了许多实用方法来完成更复杂和简单的任务 当使用静态方法时 我们在代码中引入了紧密耦合 这使得我们的代
  • Java 中如何验证字符串的格式是否正确

    我目前正在用 Java 编写一个验证方法来检查字符串是否是要更改为日期的几种不同格式之一 我希望它接受的格式如下 MM DD YY M DD YY MM D YY 和 M D YY 我正在测试第一种格式 每次它都告诉我它无效 即使我输入了有
  • 如何在 Eclipse 中获得完全限定的类名?

    有没有一种快速方法可以在 Eclipse 中单击 Java 类并获取其完全限定名称 或将其复制到剪贴板 2016年6月29日编辑 正如 Jeff 所指出的 您只需要执行以下第二步 1 Double click on the class na
  • 错误膨胀类 android.support.design.widget.NavigationView [启动时崩溃]

    该应用程序应该有一个导航抽屉 可以从左侧拉出并显示各种活动 但是一旦将导航栏添加到 XML Activity homescreen 文档中 应用程序一启动就会崩溃 主屏幕 java package com t99sdevelopment c
  • Java HashSet 是线程安全的只读吗?

    如果我通过 Collections unmodifyingSet 运行 HashSet 实例后 它是线程安全的吗 我问这个是因为 Set 文档声明它不是 但我只是执行读取操作 来自 Javadoc 请注意 此实现不是同步的 如果多个线程同时
  • JPA Web 应用程序管理策略

    我们目前正在开发一个 J2EE Web 应用程序 使用 JPA 作为我们的数据访问层 我们目前正在研究几种不同的策略来在我们的应用程序中利用缓存 Create an EntityManager per request 在请求范围内获取缓存
  • java.lang.UnsatisfiedLinkError - android studio gradle 中的 NDK?

    文件夹结构 app main java jni Android mk Application mk hello jni c res 在构建 gradle apply plugin com android application androi
  • 为什么 java.util.Arraylist#clear 按照 OpenJDK 中的方式实现?

    http grepcode com file repository grepcode com java root jdk openjdk 6 b14 java util ArrayList java 473 http grepcode co
  • 如何使用eclipse调试JSP tomcat服务?

    我想使用 Eclipse IDE 调试器来调试单独运行的 JSP Struts Tomcat Hibernate 应用程序堆栈 如何设置 java JVM 和 eclipse 以便设置断点 监视变量值并查看当前正在执行的代码 我刚刚用谷歌搜
  • 使用 Java 8 Spring 4 + MyBatis 集成问题

    使用 Java 8 1 8 0 60 Spring 4 2 1 和 MyBatis 3 3 0 时遇到以下异常 Sep 29 2015 11 02 58 AM org springframework context annotation A
  • 为什么不能在 if 语句中声明变量?

    以下 Java 代码无法编译 int a 0 if a 1 int b 0 if a 1 b 1 为什么 不能有任何代码路径导致程序将 1 分配给b无需先声明 我突然想到b的变量范围可能仅限于第一个if声明 但后来我不明白为什么 如果我实在
  • Android ClassNotFoundException:在路径上找不到类

    10 22 15 29 40 897 E AndroidRuntime 2561 FATAL EXCEPTION main 10 22 15 29 40 897 E AndroidRuntime 2561 java lang Runtime

随机推荐

  • 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 生成 为了渲染图像 我使用标签