Как транслировать pdf документ из сервлета? - PullRequest
3 голосов
/ 04 мая 2010

Я создаю pdf-документ с использованием отчета jasper, и мне нужно передать этот 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 ]

2 голосов
/ 04 мая 2010

Вам лучше использовать:

JasperExportManager.exportReportToPdfStream(jprint, servletOutputStream);
0 голосов
/ 06 октября 2010

Хех, поздно днем ​​и коротким долларом, но кто-нибудь спрашивал, есть ли у него тег <OBJECT> в его HTML?

...