java - jasperreports - PDF en blanco incluso con el jrxml más simple de Jasperreport
spring boot jasperreports example (1)
Después de todo, JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap, new JREmptyDataSource());
resuelve el problema.
Cita de Sanda de Jasperreport:
De forma predeterminada, cuando no hay información del origen de datos en un informe, JR no genera páginas. Otra opción (que se puede configurar en el atributo
whenNoDataType
del informe) sería imprimir todas las secciones del informe, con la excepción de<detail>
.Este informe contiene una sección detallada, pero solo con algunos datos estáticos. Para garantizar que esta sección también se imprima, la forma más sencilla es proporcionar un origen de datos vacío, que contenga un solo registro vacío.
Tengo un sitio EJB con glassfish 3.1 + JSF para jasperreport 4.0.1. El sitio no tiene ningún problema en la transmisión de archivos en formato PDF, pero presenta productos en blanco al imprimir PDF con runReportToPdfStream, a continuación se muestra el fragmento de código:
EJB
public class BookEJB {
public void printReport() throws ClassNotFoundException, IOException, JRException {
Map parameterMap = new HashMap();
FacesContext ctx = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) ctx.getExternalContext().getResponse();
InputStream reportStream = ctx.getExternalContext().getResourceAsStream("/reports/test.jasper");
ServletOutputStream servletOutputStream = response.getOutputStream();
servletOutputStream.flush();
response.setContentType("application/pdf");
JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap);
servletOutputStream.flush();
servletOutputStream.close();
ctx.responseComplete();
}}
test.jrxml - un informe simple sin conexión SQL
<?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="test" pageWidth="800" pageHeight="1200" columnWidth="555" leftMargin="25" rightMargin="25" topMargin="30" bottomMargin="30">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString>
<![CDATA[]]>
</queryString>
<pageHeader>
<band height="100">
<staticText>
<reportElement x="0" y="0" width="285" height="36"/>
<textElement>
<font size="24" isBold="true"/>
</textElement>
<text><![CDATA[Report of Testing]]></text>
</staticText>
</band>
</pageHeader>
<detail>
<band height="200">
<staticText>
<reportElement x="0" y="0" width="374" height="48"/>
<textElement>
<font size="18"/>
</textElement>
<text><![CDATA[If you don''t see this, it didn''t work blah blah blah.... ]]></text>
</staticText>
</band>
</detail>
<pageFooter>
<band height="100"/>
</pageFooter>
</jasperReport>
no se registra el error en glassfish al generar este informe en JSF, pero solo se ha mostrado un PDF en blanco. Por favor ayuda, avíseme si necesita más información para el análisis.
Steven