java jasperreports PDF导出,中文不显示,列表头重复输出

1. 入门参考连接

2. 解决中文不显示

2.1 jasperreports studio 需要的操作

现在C:\Windows\Fonts 中搜索 STSONG.TTF 复制到其他目录中(直接在这个目录找不到字体文件)
在 jasperreports studio中添加字体 windows -> preferences
复制代码

image.png

image.png

image.png

image.png

2.2 项目中需要修改的地方

image.png

2.2.1 fonts.xml

<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
    <fontFamily name="华文宋体">
        <normal>jasperreport/fonts/STSONG.TTF</normal>
        <bold>jasperreport/fonts/STSONG.TTF</bold>
        <italic>jasperreport/fonts/STSONG.TTF</italic>
        <boldItalic>jasperreport/fonts/STSONG.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>
</fontFamilies>
复制代码

2.2.3 STSONG.TTF

2.1 中在 windows fonts 中粘贴出来的字体
复制代码

2.2.4 jasperreports_extension.properties

net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.lobstertwo=jasperreport/fonts/fonts.xml
复制代码

3.导出代码

Map<String, Object> paramMap = getMapData();
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(getEntities());
ClassPathResource resource = new ClassPathResource(TEMPLATE_PATH + "StudentDetails.jasper");
try {
    InputStream inputStream = resource.getInputStream();
    // 详情 + 表头
    JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, paramMap, dataSource);
    byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint);
    FileOutputStream outFile = new FileOutputStream(FILE_PATH);
    outFile.write(bytes);
    outFile.close();
} catch (JRException | IOException e) {
    e.printStackTrace();
}
复制代码

3.1 导出效果图

image.png

4.实际导出中遇到问题

image.png

4.1 列表头重复输出

image.png

4.2 行间距问题

image.png

5.源码地址

github.com/mingyujiao/… gitee.com/breaksb/exp…

5.1 测试方法

image.png

注意:需要修改pdf生成目录 image.png

Guess you like

Origin juejin.im/post/7034109886287839262