JasperReports: Вызов отчета от сервлета [дубликат]

6
задан Alex K 31 January 2012 в 08:04
поделиться

2 ответа

Вы можете подготовить файл Jasper и передать его клиенту.

bytes[] byteStream = JasperRunManager.runReportToPdf("myJasperReport.jasper",paramMap,databaseConn);

OutputStream outStream = servletResponse.getOutputStream();
response.setHeader("Content-Disposition","inline, filename=myReport.pdf");
response.setContentType("application/pdf");
response.setContentLength(byteStream.length);
outStream.write(bytes,0,bytes.length);
5
ответ дан 16 December 2019 в 21:38
поделиться

Вот фиктивный отчет, созданный в сервлете файл.

Это то же самое, что и в обычном классе Java.

Просто убедитесь, что у вас есть импорт для ваших классов отчетов jasper в верхней части файла.

В приведенном ниже примере создается отчет из источника данных XML.

public class JasperServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException {
        try {
            String reportFile = "myJasperReport.jrxml";
            File outputFile = new File("Report.pdf");
            HashMap hm = new HashMap();

            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
                    .newInstance();
            DocumentBuilder documentBuilder = documentBuilderFactory
                    .newDocumentBuilder();
            Document document = documentBuilder.parse(new File("myXml.xml"));

            // Compile the report
            JasperReport report = JasperCompileManager
                    .compileReport(reportFile);
            JRXmlDataSource xml = new JRXmlDataSource(document, "/xml/root");
            // Fill the report
            JasperPrint print = JasperFillManager.fillReport(report, hm, xml);
            // Create an Exporter
            JRExporter exporter = new JRPdfExporter();
            exporter.setParameter(JRExporterParameter.OUTPUT_FILE, outputFile);
            exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
            // Export the file
            exporter.exportReport();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
1
ответ дан 16 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: