- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
报表使用网络服务器上的图像(但不一定是应用程序的网络服务器)。报表有一个图像元素表达式如下:
"http://www.example.de/images/" + $F{picture}
当我使用 JRXhtmlExporter
将报告导出为 HTML 并在浏览器中显示生成的 HTML 时,图像不可见。当我用 Firebug 检查 img 标签时,src 参数与表达式不同,而是一些生成的文件夹和生成的文件名。如果通过 JasperExportManager.exportReportToPdfStream()
将报告导出为 PDF,则图像会在生成的 PDF 文件中正确显示。
我将 JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR
设置为 Boolean.FALSE
,但没有帮助。
如何在导出时强制图片 url 保持不变?
注意:“懒惰”option iReport 做我想做的事。
最佳答案
关键是将 isLazy 属性设置为 true(如 this answer 中的@ThomasKessler 所示)。这对我有用,可以完美地生成三份报告(PDF、XLS、HTML)。
我做了以下事情:
.jrxml
...
<parameter name="LOGO_URL" class="java.lang.String" isForPrompting="false"/>
...
<image isLazy="true">
<reportElement uuid="24062838-1ede-4578-acdf-9a63662ea738" x="0" y="0" width="108" height="30"/>
<imageExpression><![CDATA[$P{LOGO_URL}]]></imageExpression>
</image>
...
在我配置的.properties 文件中(针对每个环境):
my.logo.url=http://localhost:8080/MySite/img/my_logo.jpg
在 Servlet 中,我有 3 个方法:generatePDFReport、generateXLSReport 和 generateHTMLreport。在最后一个中,我有:
Properties prop = Configurator.getProperties(BUNDLENAME);
Connection con = ReportsDB.getConnection();
String reportPathTag = prop.getProperty(Report.JASPERURL);
Map parameters = Report.extractJasperParams(request.getParameterMap());
String jasperPath = parameters.containsKey(reportPathTag) ? (String) parameters.get(reportPathTag) : "";
String reportName = parameters.containsKey(Report.JASPERTITLE) ? (String) parameters.get(Report.JASPERTITLE) : "myReport";
String path = getServletContext().getRealPath("/");
path += jasperPath;
JasperReport jasperReport = null;
JasperDesign jasperDesign = null;
jasperDesign = JRXmlLoader.load(path);
logFilteringCard(parameters);
jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters, con);
JRHtmlExporter htmlExporter = new JRHtmlExporter();
htmlExporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
htmlExporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
htmlExporter.setParameter(JRExporterParameter.OUTPUT_WRITER, pw);
htmlExporter.exportReport();
con.close();
在行中:
Map parameters = Report.extractJasperParams(request.getParameterMap());
我设置了报告的所有参数,包括LOGO_URL,设置属性值。
在我的例子中,我使用这种通用方法来生成我需要的所有报告。 Report.extractJasperParams 方法使用请求 的映射来反射(reflect)应生成哪个报告并相应地设置参数,但您可以根据您的特定需求对其进行简化。 p>
Configurator.getPoperties() 方法用于简化Properties 文件(在我的例子中是一个包含一些加密值的文件)的加载。
关于html - 如何强制 jasper 报告中的图像 url 导出为 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141222/
我有一个在旧版 iReport 3.0 中构建的 JRXML 报告,现在我想将其更新到较新的 iReport 4.7。 这样做的步骤是什么,请解释一下? 最佳答案 您可以使用位于 jasperserv
我的问题是,即使该行是空白的,它仍然占据了 band 高度的空间,因此在下一个 band 之前有比平时更大的间隙。 我的 jasper 文件中的乐队看起来像这样:
我在使用 Eclipse JasperReports Studio 时遇到了一个我无法解决的问题。我有一个非常基本的报告,其中包含返回大约 30 行的详细信息字段。我有一个要合并到主报告中的子报告,但
我有一个包含许多列但只有几行的交叉表。当我生成报告时,交叉表会重用一页中行下方的空白空间,并为相同的行呈现下一列。这样,几页被垂直压缩在一页上: 我想要第 天的列20 到天 27 (交叉表的第二部分)
我们正在使用 jaspersoft studio 创建报告,但我被困在查询部分。 从逻辑上讲,我想要的查询类型是: select * from mytable where
我想在 ireport 中创建多个组,并且数据应该以分组方式显示。例如: 首先应该完全打印 Group1 数据,然后, 第一组: 模块数据 在此之后我想完全打印 Group2 数据 组2: 类别数据
我有一个 Jasper 报告,它有一个详细信息部分,在详细信息部分内有一个来自数据库的打印字段。因此,如果我的查询返回 100 行,我会得到 100 行,这会生成一个大约 10 页长的报告,因为 10
我正在使用 Jasper 报告。我有一个页眉、详细信息和摘要带。页眉在所有页面上重复,但有时只有摘要部分移到最后一页,因为详细信息在此之前的页面中结束。标题不打印在最后一页,即摘要页。 有人知道为什么
这个问题在这里已经有了答案: How to pass ArrayList to JasperReports? (3 个回答) 上个月关闭。 如何创建将在详细信息部分迭代 arraylist 的报告,该
我有一个包含两个框架的 columnHeader 带。 如果参数为 TRUE,则第一帧必须可见,如果参数为 FALSE,则第二帧必须可见。 所以我只想显示一帧。 我按顺序放置了两帧。可见性还可以,但是
我在 jasper 报告中有一个表格,我需要该表格中某些单元格的内容垂直对齐。 我正在尝试使用 iReport 编辑报告。 在 iReport 中,我可以进入单元格的属性并看到垂直对齐设置为“中间”。
我正在尝试生成包含表格的报告。这些是 jrxml 的重要部分:
我想为文本字段绘制一个虚线底部边框,以多行显示其内容。 例如: Address: 104th Street, - - - - - - - - - - -- - - - - - - -
我在 Maven 中使用 Jasper Reports 5.2.0 和 Spring MVC。 我已经使用 JasperViewer 完成了报告,但突然出现了无法解决的错误: net.sf.jaspe
我想将图像嵌入到我的JasperReports jrxml文件中。我有这个目录结构。 Tomcat Root webapps reports -->images --> compa
我有三个不同的查询,并希望根据 jasper 报告中获取的值运行它们。查询是在 Jrxml 文件本身中编写的。如何根据不同的动态值运行不同的查询。 喜欢(这只是一个 sudo 代码) If($(a)
以下是一些演示问题的屏幕截图:首先,这是没有列表元素的设计: 这是该报告的结果(注意有两页): 现在如果我添加列表元素,设计如下: 这是摘要带的 jrxml:
我们的一份报告经常运行,其中包含大约 14,000 名司机。 参数的架构(在父报表中)如下所示: 选择(在子报表中)的 where 子句如下所示: and $X{IN, cast(e.l
背景:Jaspersoft studio 6. 有这个交叉表: 交叉表的数据集: select 'prod1' as prod, 'mon1' as month, 1 as val u
我想问一下。如何在 中的段落后添加中断一个文本字段 . 例如, 报告是为传达信息的特定目的而制作的文本作品(通常是写作、演讲、电视或电影)。 像这样:- "A report is a textual
我是一名优秀的程序员,十分优秀!