如何从servlet传输pdf文档?

时间:2010-05-04 06:33:23

标签: java servlets jasper-reports

我正在使用jasper报告创建pdf文档,我需要从servlet流式传输该pdf文档。任何人都可以帮我解决错误。这是我在我的应用程序中使用的代码片段。

ServletOutputStream servletOutputStream = response.getOutputStream();

String fileName="test.pdf";

response.setContentType("application/pdf");
response.setHeader("Content-Disposition","attachment; filename=\"" + fileName + "\"");
response.setHeader("Cache-Control", "no-cache");
try
{
        Map parameters = new HashMap();
        parameters.put("SUBREPORT_DIR", JasperReportFilepath);
        parameters.put("TestId", testID);

        JasperPrint jprint=JasperFillManager.fillReport(filePath, parameters, conn);

        byte[] output=JasperExportManager.exportReportToPdf(jprint);            
        System.out.println("Size====>"+output.length);

        servletOutputStream.write(output);
        servletOutputStream.flush();
        servletOutputStream.close();

        System.out.println("===============>Streaming perfectly");


}
catch(Exception e)
{
        System.out.println("===============>+JasperException"+e.getMessage());
}

我也无法收到任何错误消息。一切正常,但文档不流式传输。请帮我解决问题。

2 个答案:

答案 0 :(得分:2)

你最好使用:

JasperExportManager.exportReportToPdfStream(jprint, servletOutputStream);

答案 1 :(得分:0)

嘿,一天晚了,一美元短,但有没有人问他的HTML中是否有<OBJECT>标签?