2

我尝试在 jsp 页面中显示 pdf 而不将其保存在硬盘中。我能够生成一个 pdf,并通过将其保存在硬盘中对其进行了测试。我使用DynamicJasper作为报告引擎。

这是我用于动态碧玉的 strut.xml:

<action name="myJasperTest" class="com.via.qcm.view.JasperAction">
  <result name="success" type="dynamic-jasper">
    <param name="dynamicReport">DynamicReport</param>
    <param name="layoutManager">classic</param>
    <param name="parameters">dynamicReportDs</param>
    <param name="documentName">report</param>
    <param name="contentDisposition">application/download</param>
    <param name="format">PDF</param>
  </result>

我正在生成 pdf 并将其保存在ByteArrayOutputStream().

baos = new ByteArrayOutputStream();
//export to pdf
Exporter.exportToPdf(jp, baos);

现在我的问题是如何在网页中将这个“baos”显示为 pdf?

4

1 回答 1

1

有两个问题:

  • 您需要返回一个DynamicReport对象,而不是Byte Array;
  • dynamicReport 变量必须以lowercase字母开头:

Struts.xml

    <param name="dynamicReport">dynamicReport</param>

在里面Action

public DynamicReport getDynamicReport(){
    DynamicReport dynamicReport = null;
    // do all your stuff
    return dynamicReport;
}
于 2013-04-22T12:07:47.760 回答