Ich versuche, PDF-Bericht mit Jasper Report mit Spring zu erzeugen. Aber der Bericht ist immer leer. Ich habe viel gesucht und konnte kein Problem finden. Ich habe versucht, byte [] pdfReport zu OutputStream schreiben, aber das Ergebnis ist gleich, Bericht ist immer leer.Jasper Report leeren PDF-Report Problem, mit Spring Modeland
Ich habe 2 Parameter ein o sie ist Testname und einer von ihnen ist Diagramm. Beide können nicht im PDF-Bericht angezeigt werden.
Vielen Dank für Ihre Hilfe,
Hier ist der Code, den Bericht erzeugt.
//My class extends MultiActionController
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue(String.format("%s, %s", "pie1", "pie1"),20);
dataset.setValue(String.format("%s, %s", "pie2", "pie2"),80);
JFreeChart chart = ChartFactory.createPieChart("testPie", dataset, true, true, false);
Map model = new HashMap();
model.put("chart", chart.createBufferedImage(200, 200));
model.put("testName", "test report");
model.put("format", "pdf");
AbstractJasperReportsView view = new JasperReportsMultiFormatView();
view.setUrl("/WEB-INF/classes/reports/"+"test1"+".jasper");
view.setApplicationContext(getApplicationContext());
view.setContentType("application/pdf");
Properties header = new Properties();
view.setHeaders(header);
ModelAndView mv = new ModelAndView(view, model);
JasperReport report = (JasperReport) JRLoader.loadObject(getServletContext().getResourceAsStream("/WEB-INF/classes/reports/"+"test1"+".jasper"));
JasperPrint prt = JasperFillManager.fillReport(report, model);
byte[] pdfReport = JasperExportManager.exportReportToPdf(prt);
return mv;
Und hier ist jrxml Datei
<?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="test1" language="groovy" pageWidth="700" pageHeight="842" columnWidth="660" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="2"/>
<parameter name="testName" class="java.lang.String"/>
<parameter name="chart" class="java.awt.Image" isForPrompting="false"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="48" splitType="Stretch"/>
</title>
<pageHeader>
<band height="35" splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band height="14" splitType="Stretch"/>
</columnHeader>
<detail>
<band height="229" splitType="Stretch">
<image>
<reportElement x="162" y="13" width="200" height="200"/>
<imageExpression class="java.awt.Image"><![CDATA[$P{chart}]]></imageExpression>
</image>
<textField>
<reportElement x="37" y="61" width="100" height="20"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$P{testName}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band height="112" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="76" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>
Vielen Dank für die Antwort. Ich habe den unnötigen Code entfernt, aber das Ergebnis ist gleich, pdf ist leer. Und es tut mir leid, ich weiß nicht über Berichtsdatenschlüssel muss in einem Ressourcenpaket deklariert werden. Ich erzeuge nur die jrxml-Datei mit iReports, kompiliere sie dann mit Maven und benutze sie. Könnten Sie bitte mehr über den Berichtsdatenschlüssel erfahren? und Ihre Tutorials sind sehr hilfreich, ich werde sie weiter lesen. – jiraiya
Gern geschehen. Können Sie hier veröffentlichen, wie Sie den neuen Code und das Ressourcenbündel deklarieren? Wenn Sie die Datei JRXML von iReports generieren, werden Sie etwas dort manuell – chris
bearbeiten muss ich habe ein Tutorial hinzugefügt mit JasperReportsMultiFormatView bei http://krams915.blogspot.com/2010/12/spring-mvc-3-jasper- how-to-use.html – chris