首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java调用ireport4.0生成的.jasper文件的有关问题

2012-12-19 
java调用ireport4.0生成的.jasper文件的问题。我现在公司需要做一个打印报表的项目。所以做了一个例子,现在

java调用ireport4.0生成的.jasper文件的问题。
我现在公司需要做一个打印报表的项目。所以做了一个例子,现在的问题是,ireport4.0做的报表可以正常的生成PDF。但是如果用JAVA代码,读取.jasper文件。生成的PDF却只是一个空的不知道为什么。各位大侠指教哦。

/////////////////JAVA Code://///////////////
public class pdfIreport {

/**
 * @param args
 */
public static void main(String[] args) {
File reportFile = new File("D:\\TEST.jasper");
JasperReport jasperReport = null;
try {
jasperReport = (JasperReport) JRLoader.loadObject(reportFile.getPath());
} catch (JRException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

HashMap<String, String> parameters = new HashMap<String, String>();
parameters.put("barcode", "564789");
// Class.forName("com.mysql.jdbc.Driver");
// Connection conn =
// DriverManager.getConnection("jdbc:mysql://localhost:3306/phpcms",
// "root", "root");
try {
JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters);
// OutputStream output = new FileOutputStream(new
// File("D:\\TEST.pdf"));
JasperExportManager.exportReportToPdfFile(print, "D:\\TEST.pdf");
} catch (JRException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

//////////////TEST.jrxml://///////////////
<?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" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" 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="102"/>
<parameter name="barcode" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="79" splitType="Stretch"/>
</title>
<pageHeader>
<band height="35" splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band height="61" splitType="Stretch"/>
</columnHeader>
<detail>
<band height="125" splitType="Stretch">
<componentElement>
<reportElement mode="Opaque" x="58" y="61" width="118" height="50"/>
<jr:Code39 xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" textPosition="bottom" displayChecksum="false" displayStartStop="true" extendedCharSetEnabled="false">
<jr:codeExpression><![CDATA[$P{barcode}.trim()]]></jr:codeExpression>
</jr:Code39>
</componentElement>
<componentElement>
<reportElement x="277" y="61" width="200" height="50"/>
<jr:barbecue xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" type="Code39" drawText="true" checksumRequired="false">


<jr:codeExpression><![CDATA["1234"]]></jr:codeExpression>
</jr:barbecue>
</componentElement>
</band>
</detail>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>

[解决办法]
应该是缺少字体文件。。。你试试导出doc。。应该没有问题
[解决办法]
字体文件?这个里边只用到了英文字体或数字,那我应该怎么添加字体文件呢?请指点。
[解决办法]
补充说明一下,我用的Jar:
barcode4j-2.0.jar
commons-collections.jar
commons-digester.jar
commons-logging.jar
groovy-all-1.7.5.jar
iText-2.1.7.jar
jasperreports-4.0.0.jar
mysql-connector-jara-5.1.13-bin.jar
[解决办法]
请高人们帮我看看!
[解决办法]
你首先load了对应的jasper文件,然后又自己制造了个参数params,你最后fillReport,生成PDF文件。
思路是正确的,方法用错了。
JasperFillManager.fillReport(inputStream, parameters, connection),在填充报表的时候应该把当前的数据库连接传递进去,否则拿不到数据。
说明一点:如果你的报表里面不需要什么参数的话,可以直接传个null进去

热点排行
Bad Request.