Reputation: 524
When I try printing the Jasper report it gets me the message: "net.sf.jasperreports.engine.JRException: Invalid page index range : 0 - -1 of 0".
Code:
try {
JasperPrint impressao = JasperFillManager.fillReport(getClass().getClassLoader().getResourceAsStream("example.jasper"), parametros);
JasperExportManager.exportReportToPdf(impressao);
JasperPrintManager.printReport(impressao, true);
} catch (JRException e) {
e.printStackTrace();
}
Report:
<?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="base-estadual" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="9cbb7afc-abb5-4207-a29b-a0c7adde7df6">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="250"/>
<import value="com.myproject.ed.*"/>
<parameter name="PATH_IMAGENS" class="java.lang.String"/>
<queryString>
<![CDATA[]]>
</queryString>
<background>
<band splitType="Stretch"/>
</background>
<pageHeader>
<band height="63">
<textField evaluationTime="Report">
<reportElement x="515" y="16" width="40" height="20" uuid="3892152b-6880-41da-bbc7-7bf79588061d"/>
<textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
<textElement textAlignment="Right"/>
<textFieldExpression><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]>/textFieldExpression>
</textField>
</band>
</pageHeader>
Could someone help me to figure out why is it happening?
Upvotes: 4
Views: 2089
Reputation: 922
Check whether the parameters which you are passing to the JasperFillManager.fillReport()
is not null or empty. If it is empty or null then you will receive this same error.
JasperPrint impressao = JasperFillManager.fillReport(getClass().getClassLoader().getResourceAsStream("example.jasper"), parametros);
Upvotes: 0
Reputation: 121
JasperFillManager likes to get a data source, even when you don't really have any. You could try adding an empty data source as a third parameter to JasperFillManager.fillReport:
JasperPrint impressao = JasperFillManager.fillReport(getClass().getClassLoader().getResourceAsStream("example.jasper"), parametros, new JREmptyDataSource());
Upvotes: 6