jasperReport - 多Table的PDF中文导出
项目中实际需求:
1、多个不定行的表格。
2、嵌入可变图片
3、PDF导出为中文。
基本知识
1. 下载地址:https://community.jaspersoft.com/community-download
目前最新的为:TIB_js-studiocomm_6.11.0_windows_x86_64.exe,
实际使用的是TIB_js-studiocomm_6.9.0_windows_x86_64.exe
2. 网上的关于Jasperreports+jaspersoft studio学习教程,写的不错。
f) 分组显示数据
g) Table组件的使用
j) 多数据源的Chart图表
l) JasperReport中踩过的坑
3. 项目在springMvc中使用,需要的Jar如下:
1) itext-2.1.7.jar
2) itext-rtf-2.1.7.jar
3) iTextAsian.jar
4) jasperreports-6.9.0.jar
5) jasperreports-chart-customizers-6.9.0.jar
6) jasperreports-chart-themes-6.9.0.jar
7) jasperreports-fonts-6.9.0.jar
8) jasperreports-functions-6.9.0.jar
9) jasperreports-metadata-6.9.0.jar
10)commons-digester-2.1.jar
11)commons-beanutils-1.8.3.jar
4. 关于PDF解决中文字体的。这篇文章比较靠谱。实际使用好使。https://blog.csdn.net/DR_LF/article/details/78989470
项目实战
1、报表模板设计
1)多个不定行的表格。使用两个Table来实现。具体实现方式参考上面的链接【Table组件的使用】。
需要注意的是为了保证第二个Table的位置,在第一个Table的最后行下边。需要使用多个Detail区域的方式。
2)嵌入可变图片,就比较简单了。直接给图片的expression传递image的路径就可以了,可以是本地路径,可以是url。
3)PDF导出为中文。稍微复杂一些。
在jasperreports-fonts-6.9.0.jar已经集成了一些字体,但是这些字体对中文支持不够。所以需要修改jasperreports-fonts-6.9.0.jar,在net\sf\jasperreports\fonts\fonts.xml中增加了【宋体】的支持,并把SimSun.ttf放在相应的位置。
<fontFamily name="宋体"><normal>net/sf/jasperreports/fonts/dejavu/SimSun.ttf</normal><bold>net/sf/jasperreports/fonts/dejavu/SimSun.ttf</bold><italic>net/sf/jasperreports/fonts/dejavu/SimSun.ttf</italic><boldItalic>net/sf/jasperreports/fonts/dejavu/SimSun.ttf</boldItalic><pdfEncoding>Identity-H</pdfEncoding><pdfEmbedded>true</pdfEmbedded><exportFonts><export key="net.sf.jasperreports.html">'宋体', Arial, Helvetica, sans-serif</export><export key="net.sf.jasperreports.xhtml">'宋体', Arial, Helvetica, sans-serif</export></exportFonts></fontFamily>
在设计报表模板时,字体统一选择宋体。
修改后的Jar下载地址:https://download.csdn.net/download/qgbihc/12190031
最终的模板内容如下:test.jrxml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.9.0.final using JasperReports Library version 6.9.0-cb8f9004be492ccc537180b49c026951f4220bf3 -->
<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="05_contract" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="95f030bc-71a0-4115-a89c-2900bc82939b"><property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/><style name="Table_TH" mode="Opaque" backcolor="#F0F8FF"><box><pen lineWidth="0.5" lineColor="#000000"/><topPen lineWidth="0.5" lineColor="#000000"/><leftPen lineWidth="0.5" lineColor="#000000"/><bottomPen lineWidth="0.5" lineColor="#000000"/><rightPen lineWidth="0.5" lineColor="#000000"/></box></style><style name="Table_CH" mode="Opaque" backcolor="#BFE1FF"><box><pen lineWidth="0.5" lineColor="#000000"/><topPen lineWidth="0.5" lineColor="#000000"/><leftPen lineWidth="0.5" lineColor="#000000"/><bottomPen lineWidth="0.5" lineColor="#000000"/><rightPen lineWidth="0.5" lineColor="#000000"/></box></style><style name="Table_TD" mode="Opaque" backcolor="#FFFFFF"><box><pen lineWidth="0.5" lineColor="#000000"/><topPen lineWidth="0.5" lineColor="#000000"/><leftPen lineWidth="0.5" lineColor="#000000"/><bottomPen lineWidth="0.5" lineColor="#000000"/><rightPen lineWidth="0.5" lineColor="#000000"/></box></style><style name="Table 1_TH" mode="Opaque" backcolor="#F0F8FF"><box><pen lineWidth="0.5" lineColor="#000000"/><topPen lineWidth="0.5" lineColor="#000000"/><leftPen lineWidth="0.5" lineColor="#000000"/><bottomPen lineWidth="0.5" lineColor="#000000"/><rightPen lineWidth="0.5" lineColor="#000000"/></box></style><style name="Table 1_CH" mode="Opaque" backcolor="#BFE1FF"><box><pen lineWidth="0.5" lineColor="#000000"/><topPen lineWidth="0.5" lineColor="#000000"/><leftPen lineWidth="0.5" lineColor="#000000"/><bottomPen lineWidth="0.5" lineColor="#000000"/><rightPen lineWidth="0.5" lineColor="#000000"/></box></style><style name="Table 1_TD" mode="Opaque" backcolor="#FFFFFF"><box><pen lineWidth="0.5" lineColor="#000000"/><topPen lineWidth="0.5" lineColor="#000000"/><leftPen lineWidth="0.5" lineColor="#000000"/><bottomPen lineWidth="0.5" lineColor="#000000"/><rightPen lineWidth="0.5" lineColor="#000000"/></box></style><subDataset name="Dataset1" uuid="f8c4dc72-2119-4bd6-bb2e-ce54bb0b0501"><property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/><queryString><![CDATA[]]></queryString><field name="field1" class="java.lang.String"/><field name="field2" class="java.lang.String"/><field name="field3" class="java.lang.String"/><field name="field4" class="java.lang.String"/><field name="field5" class="java.lang.String"/></subDataset><queryString><![CDATA[]]></queryString><field name="tableData" class="java.util.List"/><field name="makeUser" class="java.lang.String"/><field name="docNo" class="java.lang.String"/><field name="totalFee" class="java.lang.String"/><field name="tableData2" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/><field name="imageUrl" class="java.lang.String"/><background><band splitType="Stretch"/></background><title><band height="65" splitType="Stretch"><property name="com.jaspersoft.studio.unit.height" value="px"/><staticText><reportElement x="180" y="16" width="200" height="30" uuid="1846fb93-6cc1-4cc5-a806-0880d0d38d39"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="宋体" size="18" isBold="true"/></textElement><text><![CDATA[测试JasperReport]]></text></staticText></band></title><detail><band height="130" splitType="Stretch"><property name="com.jaspersoft.studio.unit.height" value="px"/><staticText><reportElement x="0" y="0" width="100" height="30" uuid="7e47f290-78ea-422b-9c50-b6efcfced2f6"/><box><topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/><leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/><bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/><rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/></box><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="宋体" isItalic="true" isUnderline="true"/></textElement><text><![CDATA[定作人:]]></text></staticText><textField><reportElement x="100" y="0" width="175" height="30" uuid="53f31274-11ce-4f79-85a1-d2c8c8bd0c29"><property name="com.jaspersoft.studio.unit.width" value="px"/></reportElement><box><topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/><leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/><bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/><rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/></box><textElement textAlignment="Left" verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA[$F{makeUser}]]></textFieldExpression></textField><staticText><reportElement x="275" y="0" width="100" height="30" uuid="93548d1e-6d89-4da1-b186-551a878cfd9d"><property name="com.jaspersoft.studio.unit.x" value="px"/></reportElement><box><topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/><leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/><bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/><rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/></box><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="宋体"/></textElement><text><![CDATA[文档编号:]]></text></staticText><textField><reportElement x="375" y="0" width="175" height="30" uuid="8e3dacec-7c6b-4418-9562-ea79f7400ca5"><property name="com.jaspersoft.studio.unit.width" value="px"/></reportElement><box><topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/><leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/><bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/><rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/></box><textElement textAlignment="Left" verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA[$F{docNo}]]></textFieldExpression></textField><componentElement><reportElement stretchType="ContainerHeight" x="0" y="40" width="555" height="90" uuid="e7645099-9ad8-4ede-8e56-6c6177175dcc"><property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/><property name="com.jaspersoft.studio.table.style.table_header" value="Table_TH"/><property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/><property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/></reportElement><jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" whenNoDataType="AllSectionsNoDetail"><datasetRun subDataset="Dataset1" uuid="c12aac31-9653-403b-b6fa-9de2956e72ac"><dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{tableData})]]></dataSourceExpression></datasetRun><jr:column width="189" uuid="961a370c-1c60-4163-9c1e-14bcade3fcfc"><property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/><jr:columnHeader style="Table_CH" height="60" rowSpan="2"><staticText><reportElement x="0" y="0" width="189" height="60" uuid="42320b63-e9f5-4c4d-a5a8-518a7c4d8e07"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="宋体"/></textElement><text><![CDATA[项目名]]></text></staticText></jr:columnHeader><jr:detailCell style="Table_TD" height="30"><textField><reportElement x="0" y="0" width="189" height="30" uuid="1c414760-9968-4532-af1b-c375edbe026f"/><textElement verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA[$F{field1}]]></textFieldExpression></textField></jr:detailCell></jr:column><jr:column width="126" uuid="34859f15-8749-4752-968a-5a4d963395d8"><property name="com.jaspersoft.studio.components.table.model.column.name" value="Column2"/><jr:columnHeader style="Table_CH" height="60" rowSpan="2"><staticText><reportElement x="0" y="0" width="126" height="60" uuid="7acf1a02-e345-4a4c-8efe-548c83d5aa63"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="宋体"/></textElement><text><![CDATA[计量单位*]]></text></staticText></jr:columnHeader><jr:detailCell style="Table_TD" height="30"><textField><reportElement x="0" y="0" width="126" height="30" uuid="a7599607-0175-4fab-b001-c791aaed36c9"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA[$F{field2}]]></textFieldExpression></textField></jr:detailCell></jr:column><jr:column width="94" uuid="1acf7fb4-5f5c-4be5-9280-0e2f5168d3b1"><property name="com.jaspersoft.studio.components.table.model.column.name" value="Column3"/><jr:columnHeader style="Table_CH" height="60" rowSpan="2"><staticText><reportElement x="0" y="0" width="94" height="60" uuid="8193ada3-65fc-4b87-bc83-053e43825db5"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="宋体"/></textElement><text><![CDATA[数量或任务量]]></text></staticText></jr:columnHeader><jr:detailCell style="Table_TD" height="30"><textField><reportElement x="0" y="0" width="94" height="30" uuid="b41577f2-7478-4029-91db-36e15a3c7623"/><textElement textAlignment="Right" verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA[$F{field3}]]></textFieldExpression></textField></jr:detailCell></jr:column><jr:columnGroup width="146" uuid="fdf3d400-8fe4-40bc-9e36-3c2fcd7a18f8"><property name="com.jaspersoft.studio.components.table.model.column.name" value="Columns [2]"/><jr:columnHeader style="Table_CH" height="30" rowSpan="1"><staticText><reportElement x="0" y="0" width="146" height="30" uuid="77a8469f-94a6-4fa7-ae06-ad32f5dde1fb"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="宋体"/></textElement><text><![CDATA[价款或酬金]]></text></staticText></jr:columnHeader><jr:column width="73" uuid="a3c03042-b6ba-4d24-b145-c4fb3cdaf5f4"><property name="com.jaspersoft.studio.components.table.model.column.name" value="Column4"/><jr:columnHeader style="Table_CH" height="30" rowSpan="1"><staticText><reportElement x="0" y="0" width="73" height="30" uuid="b8aa3420-60fc-4943-a5d5-4c889a6bca2c"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="宋体"/></textElement><text><![CDATA[单价]]></text></staticText></jr:columnHeader><jr:detailCell style="Table_TD" height="30"><textField><reportElement x="0" y="0" width="73" height="30" uuid="12029967-c6af-4f16-aca5-c64c072e8184"/><textElement textAlignment="Right" verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA[$F{field4}]]></textFieldExpression></textField></jr:detailCell></jr:column><jr:column width="73" uuid="54c1c748-f2c5-4747-ab92-38a282d76603"><property name="com.jaspersoft.studio.components.table.model.column.name" value="Column5"/><jr:columnHeader style="Table_CH" height="30" rowSpan="1"><staticText><reportElement x="0" y="0" width="73" height="30" uuid="afa17a51-eb97-4b55-9bda-9adf75b907a9"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="宋体"/></textElement><text><![CDATA[总金额]]></text></staticText></jr:columnHeader><jr:detailCell style="Table_TD" height="30"><textField><reportElement x="0" y="0" width="73" height="30" uuid="021a7ec7-ed4a-48be-841b-e3d5e6422db2"/><textElement textAlignment="Right" verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA[$F{field5}]]></textFieldExpression></textField></jr:detailCell></jr:column></jr:columnGroup></jr:table></componentElement></band><band height="270"><componentElement><reportElement x="0" y="32" width="555" height="60" uuid="68b08e3a-fe5f-4069-a510-9511ab08120b"><property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/><property name="com.jaspersoft.studio.table.style.table_header" value="Table 1_TH"/><property name="com.jaspersoft.studio.table.style.column_header" value="Table 1_CH"/><property name="com.jaspersoft.studio.table.style.detail" value="Table 1_TD"/><property name="com.jaspersoft.studio.unit.width" value="px"/><property name="com.jaspersoft.studio.components.autoresize.proportional" value="true"/><property name="com.jaspersoft.studio.unit.x" value="px"/></reportElement><jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" whenNoDataType="AllSectionsNoDetail"><datasetRun subDataset="Dataset1" uuid="260fc936-1136-41bc-89da-d1bab0649a00"><dataSourceExpression><![CDATA[$F{tableData2}]]></dataSourceExpression></datasetRun><jr:column width="111" uuid="f38c5305-dbfc-4971-b9c0-66f462238cda"><jr:columnHeader style="Table 1_CH" height="30"><staticText><reportElement x="0" y="0" width="111" height="30" uuid="31842e37-86ae-4e48-b1d5-6ad42e256668"/><textElement verticalAlignment="Middle"><font fontName="宋体"/></textElement><text><![CDATA[材料名称]]></text></staticText></jr:columnHeader><jr:detailCell style="Table 1_TD" height="30"><textField><reportElement x="0" y="0" width="111" height="30" uuid="d7f388c4-d759-47d4-8892-49660e0ddf19"/><textElement verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA[$F{field1}]]></textFieldExpression></textField></jr:detailCell></jr:column><jr:column width="111" uuid="033d0210-0f64-44b9-a649-e37469848229"><jr:columnHeader style="Table 1_CH" height="30"><staticText><reportElement x="0" y="0" width="111" height="30" uuid="a5964748-a743-4841-b944-5c8835bfa13d"/><textElement verticalAlignment="Middle"><font fontName="宋体"/></textElement><text><![CDATA[商标]]></text></staticText></jr:columnHeader><jr:detailCell style="Table 1_TD" height="30"><textField><reportElement x="0" y="0" width="111" height="30" uuid="3fc760d3-158c-4c10-9f1c-ced7139ea541"/><textElement verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA[$F{field2}]]></textFieldExpression></textField></jr:detailCell></jr:column><jr:column width="111" uuid="50b10ddf-1739-4072-bafc-c24b1e54895f"><jr:columnHeader style="Table 1_CH" height="30"><staticText><reportElement x="0" y="0" width="111" height="30" uuid="b0a1e517-3d17-4eeb-9f95-f797dfc67b85"/><textElement verticalAlignment="Middle"><font fontName="宋体"/></textElement><text><![CDATA[生产厂家]]></text></staticText></jr:columnHeader><jr:detailCell style="Table 1_TD" height="30"><textField><reportElement x="0" y="0" width="111" height="30" uuid="6e9bca9e-0883-4f2b-b05c-62291ad127cb"/><textElement verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA[$F{field3}]]></textFieldExpression></textField></jr:detailCell></jr:column><jr:column width="111" uuid="fd4c786d-5d63-4c98-aada-c63a0447c0bd"><jr:columnHeader style="Table 1_CH" height="30"><staticText><reportElement x="0" y="0" width="111" height="30" uuid="34054435-c587-4ca1-b730-f8f956420fd7"/><textElement verticalAlignment="Middle"><font fontName="宋体"/></textElement><text><![CDATA[规格型号]]></text></staticText></jr:columnHeader><jr:detailCell style="Table 1_TD" height="30"><textField><reportElement x="0" y="0" width="111" height="30" uuid="1251001d-0ad4-4f18-abec-aa0c0d1908c3"/><textElement verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA[$F{field4}]]></textFieldExpression></textField></jr:detailCell></jr:column><jr:column width="111" uuid="4b895ac4-53a3-4d01-83b7-089f0c5194f7"><jr:columnHeader style="Table 1_CH" height="30"><staticText><reportElement x="0" y="0" width="111" height="30" uuid="f6915d74-fdec-4175-9a35-a6870899ebd4"/><textElement verticalAlignment="Middle"><font fontName="宋体"/></textElement><text><![CDATA[计量单位]]></text></staticText></jr:columnHeader><jr:detailCell style="Table 1_TD" height="30"><textField><reportElement x="0" y="0" width="111" height="30" uuid="759e2918-98a5-46a4-b6d3-66eb5a27621a"/><textElement verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA[$F{field5}]]></textFieldExpression></textField></jr:detailCell></jr:column></jr:table></componentElement><textField evaluationTime="Band"><reportElement x="0" y="-1" width="555" height="30" uuid="165b5438-e528-44ff-8978-0b7c6593444e"><property name="com.jaspersoft.studio.unit.width" value="px"/><property name="com.jaspersoft.studio.unit.y" value="px"/></reportElement><box><leftPen lineWidth="0.5"/><bottomPen lineWidth="0.5"/><rightPen lineWidth="0.5"/></box><textElement verticalAlignment="Middle"><font fontName="宋体"/></textElement><textFieldExpression><![CDATA["合计人民币金额 (大写):"+$F{totalFee}]]></textFieldExpression></textField><image><reportElement positionType="FixRelativeToBottom" x="420" y="120" width="130" height="130" uuid="3abecb68-6168-4280-ad4f-a5ac7fa48fe0"><property name="com.jaspersoft.studio.unit.width" value="px"/></reportElement><imageExpression><![CDATA[$F{imageUrl}]]></imageExpression></image></band></detail><lastPageFooter><band height="21"/></lastPageFooter>
</jasperReport>
2、Java的调用
直接使用java的main方法测试,代码如下:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;import net.sf.jasperreports.engine.JRStyle;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.base.JRBaseStyle;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.export.ExporterInput;
import net.sf.jasperreports.export.OutputStreamExporterOutput;
import net.sf.jasperreports.export.SimpleExporterInput;
import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput;
import net.sf.jasperreports.view.JasperViewer;public class RptTest {public static void main(String[] args) {JasperDesign design;try {design = JRXmlLoader.load("C:\\template\\test.jrxml");HashMap<String, Object> paramsMap = new HashMap<String, Object>();// 加载模板JasperReport report = JasperCompileManager.compileReport(design);List<RptData> detailList = new ArrayList<RptData>();RptData mainData = new RptData();mainData.setMakeUser("admin");mainData.setDocNo("2019文字-00001");mainData.setTotalFee("伍佰圆整");mainData.setImageUrl("C:\\images\\coffee.jpg");detailList.add(mainData);List<Fields> list1 = new ArrayList<Fields>();for (int i = 1; i <= 5; i++) {Fields data = new Fields();data.setField1("项目" + i);data.setField2("台");data.setField3("" + i);data.setField4("100.00");data.setField5(String.valueOf(i * 100));list1.add(data);}mainData.setTableData(list1);List<Fields> list2 = new ArrayList<Fields>();for (int i = 1; i <= 5; i++) {Fields data = new Fields();data.setField1("材料" + i);data.setField2("商标" + i);data.setField3("生产厂家" + i);data.setField4("规格型号");data.setField5("个");list2.add(data);}mainData.setTableData2(new JRBeanCollectionDataSource(list2));JRBeanCollectionDataSource jbds = new JRBeanCollectionDataSource(detailList);// 填充数据JasperPrint print = JasperFillManager.fillReport(report, paramsMap, jbds);// // 预览显示
// JasperViewer.viewReport(print);JRPdfExporter exporter = new JRPdfExporter(); // 指定要导出的jrprit数据// 指定导出文件的文件名ExporterInput exporterInput = new SimpleExporterInput(print);exporter.setExporterInput(exporterInput);// 指定导出文件的文件名OutputStreamExporterOutput exporterOutput = new SimpleOutputStreamExporterOutput("C:\\pdf\\test.pdf");exporter.setExporterOutput(exporterOutput);// 实现报表的导出exporter.exportReport();} catch (Exception e) {e.printStackTrace();}}}
3、运行效果如下:
jasperReport - 多Table的PDF中文导出相关推荐
- 解决bootstrap table的export扩展模块利用tableExport导出pdf中文乱码问题
缘由:没有积分了,怎么破?自己研究. 参考文章: https://blog.csdn.net/qq_34117170/article/details/72765646 https://www.cnbl ...
- php生成pdf中文断码_Rmarkdown导出中文PDF解决方案
Rmarkdown非常适合R语言使用者导出格式漂亮的文档,但是输出中文PDF的过程中会遇到各种麻烦的问题,本文整理了我的经验供大家参考. 总的来说,通过Rmarkdown输出中文版pdf报告,要解决以 ...
- 解决pads logic导出pdf中文乱码问题
最近在做<晶体管电路设计-上>配套PCB实验板(用于调试实验,更深入学习模电知识)想导出PDF,选择File->Create Pdf,导出的pdf中文是乱码,即使我把字符设置成宋体等 ...
- Html 中表格导出生成excel文件,解决中文导出失败问题。
Html 中表格导出生成excel文件,解决中文导出失败问题. 网上有Github的jquery插件,但是表格中含有中文的时候,会导出失败,jquery.base64出现INVALID_CHARACT ...
- java导出PDF、iText5导出漂亮表格PDF、导出指定格式水印PDF
我们在项目当中经常要导出pdf文档,pdf文档还要按一定的格式导出,以下介绍导出pdf文档功能: 1)支持A4纸大小导出 2)指定文字显示的位置 3)支持表格展示数据 4)添加水印 开源下载 java ...
- java pdf 中文_java-pdf-itext 生成pdf 文档(支持中文字体)
java-pdf-itext 生成pdf 文档(支持中文字体) itext 版本:2.1.7 package com.demo.preview; import java.io.ByteArrayOut ...
- fastreport 转PDF 中文 乱码 ARIAL
fastreport 转PDF中文乱码,百度绝大部分方法是:把字体设为宋体,设为中文字体等 这的确可以解决,但是为了解决这个问题,牺牲字体,牺牲美观,宋体实在是太丑了, 这个问题困扰了很久,今天终于找 ...
- Java如何实现Pdf的导出?
Java如何实现Pdf的导出? 在某些场景中,我们需要从数据库或其他来源获取的数据信息,动态的导出Pdf文件,如准考证的打印等.这时我们需要借助第三方依赖包-itextpdf 来实现此需求. 一.制作 ...
- 导出文件_一招解决PDF文件导出图片
将PDF文件保存为高清图片是经常需要进行的保存方式之一,因为PDF文件虽然安全性高,但是相比较图片而言,还是不易进行查看的,那么如何将PDF文件导出图片呢?以前也了解过很多方法,不过最好的当然不是截图 ...
- asp.net将内容导出到Excel,Table表格数据(html)导出EXCEL
代码: 1 /// <summary> 2 /// HTML Table表格数据(html)导出EXCEL 3 /// </summary> 4 /// <param n ...
最新文章
- komodo edit linux,Komodo Edit是什么
- CG CTF MISC Remove Boyfriend
- egg风格 什么意思_小小的“egg”,有你想象不到的秘密……
- SQL中的long text
- Cypress 等待某个 HTTP put 请求得到 200 状态码后,再执行下一步的操作代码
- python调用电脑蓝牙_python-从蓝牙设备获取响应
- 消息队列的其他实现方式
- terminateActivity
- os.path的使用
- 移动开发 Jetpack Compose 组件布局
- 班级量化考核系统php代码,学生信息量化考核管理系统
- 笨方法学习python
- st7789屏幕使用方法
- shell日志分析脚本
- OPenCV4-颜色识别(二)三原色识别
- Android--热修复,补丁实战
- Magento银联支付模块|Magento1.9 Unionpay中国银联支付插件|支持PC、手机移动端支付|2016最新Unionpay5.0.0支付接口...
- java 生成纯色图片_java实现切图并且判断图片是不是纯色/彩色图片
- Hadoop-2.5.2集群安装配置详解
- 【域名检测】使用CNN实现DGA恶意域名检测(TensorFlow)【代码】