我正在尝试在浏览器上显示我的报告,但我一直收到此错误:

关于这一点的奇怪之处在于它只会在我尝试从服务器上安装的版本生成报告时发生,而不是在我从我的PC本地执行时
你知道为什么会这样吗?
我有一个带有glassfish 3.1 + JSF的EJB站点,用于jasperreport 4.0.1.该网站在流式传输pdf上没有问题,但是在使用runReportToPdfStream打印PDF时它产品为空白PDF,下面是代码片段:
EJB
public class BookEJB {
public void printReport() throws ClassNotFoundException, IOException, JRException {
Map parameterMap = new HashMap();
FacesContext ctx = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) ctx.getExternalContext().getResponse();
InputStream reportStream = ctx.getExternalContext().getResourceAsStream("/reports/test.jasper");
ServletOutputStream servletOutputStream = response.getOutputStream();
servletOutputStream.flush();
response.setContentType("application/pdf");
JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap);
servletOutputStream.flush();
servletOutputStream.close();
ctx.responseComplete();
}}
Run Code Online (Sandbox Code Playgroud)
test.jrxml - 没有SQL连接的简单报告
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="test" pageWidth="800" pageHeight="1200" columnWidth="555" leftMargin="25" rightMargin="25" topMargin="30" bottomMargin="30">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString>
<![CDATA[]]>
</queryString> …Run Code Online (Sandbox Code Playgroud) 我知道如何在JasperReports中将内联样式应用于静态文本.可以对文本元素(文本字段)执行相同的操作吗?如果有,怎么样?
两者都是可视化设计报告的工具,两者都来自同一供应商.
为什么Jaspersoft推出两种类似的技术?
我有一个JasperReport,我将报告日期从主报告传递到子报告.这很好用.我还有另一个我将相同参数传递给具有多个SubReports的子报表.当我在Ireports中预览它时,它的所有页面都显示为空白,这意味着正在调用子子报告,但报告日期未被传递,因为所有子子报告SQL都以报告日期为条件.如何将报告日期字段输入子子报告?当我预览SubReport并在报告日期中输入所有报告日期工作时,所有四个页面都填充了正确的数据.
当我格式化要在"粗体"中显示的文本字段时,它在ireport输出中显示为粗体,但在将其视为PDF时不会以粗体显示..任何建议......?
如何避免在JRXML中重复列名?在使用JRXML和Jasper生成报告时,是否有任何属性可以避免在每个页面中使用列标题?
我想Page X of Y根据常见的解决方案创建一个包含的文本字段,而不将其分为两部分.我的文本字段包含"Page " + $V{currentPage} + " of " + $V{PAGE_NUMBER}"有evaluationTime=auto.
假设我有10页的报告.三个是Title Band,六个是Detail Band,一个是Summary Band.我的结果显示"Page 0 of 10"为标题带 S,对于正确的计数详细带 S,然后"Page 0 of 10"在总结波段秒.
你如何确保变量在任何地方计算,而不仅仅是在细节带?
我需要借助master report的参数将一个dataSource传递给我的子报表List<String>.我不知道dataSource是什么类型是正确的以及如何在子报表中获取值.
我的主报告中的片段:
<parameter name="seznamPriloh" class="java.util.List" isForPrompting="false"/>
....
<subreport>
<reportElement x="0" y="56" width="555" height="76"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{seznamPriloh})]]></dataSourceExpression>
<subreportExpression><![CDATA[cz.alis.keong.jasjdr.reporting.ReportCompiler.compile("R79_SeznamPriloh")]]></subreportExpression>
</subreport>
Run Code Online (Sandbox Code Playgroud)
我的子报告中的代码段:
<detail>
<band height="23">
<textField>
<reportElement x="56" y="3" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{}]]></textFieldExpression>
</textField>
</band>
</detail>
Run Code Online (Sandbox Code Playgroud)
请告诉我如何通过主报告的java.util.List<String>类型参数将数据源传递到子报告.
编辑次数:08.14 14:20将标签添加到Java
编辑:08.14 15:30涉及如何打印iReport中另一个列表中包含的字符串列表?适用于4.5.0和List<String>
我正在使用Jasper报告5.2,iReport 5.2并以RTF和PDF格式导出报告.
在我的报告中,我想添加几个文本字段以及水平对齐的(静态文本)标签
Name: $F{name}
Age: $F{age}
Date of Birth: $F{dateOfBirth}
Run Code Online (Sandbox Code Playgroud)
但是我无法调整它们.这是我试过的
图像显示了我得到的和我想要的东西.此外,我的文本字段的内容是动态的,即内容大小可能会有所不同.

我已经阅读了很多论坛但找不到解决方案,请提出建议.
谢谢