首页 > 代码库 > jasperreports-5.6 + jaspersoftstudio-5.6 生成pdf 文件中文无法正常显示问题
jasperreports-5.6 + jaspersoftstudio-5.6 生成pdf 文件中文无法正常显示问题
jrxml字段属性设置:
<textElement> <font fontName="宋体" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/></textElement>
在工程lib中引入itextasian-1.5.2.jar文件,注意该文件的目录结构为com/lowagie/text/pdf/fonts/*,最新的itext-asian.jar包不是该结构无法正常使用,
JAVA示例代码:
/****数据库连接****/ public static Connection getConnection() { Connection conn = null; String driver = "net.sourceforge.jtds.jdbc.Driver"; String url = "jdbc:jtds:sqlserver://127.0.0.1:1433/CODE-WH"; try { Class.forName(driver); conn = DriverManager.getConnection(url,"sa", "123"); return conn; } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static void main(String[] args) throws Exception { String fileName = "D:/Coffee.jrxml"; long startTime = System.currentTimeMillis(); // 将报表的定义文件*.jrxml编译成*.jasper文件 String jasperFile = JasperCompileManager.compileReportToFile(fileName); // 向*.jasper文件中填充数据,这一步将生产出*.jrprint文件 String jrprintFile = JasperFillManager.fillReportToFile(jasperFile, null, getConnection()); System.out.println("jrprintFile=="+jrprintFile); // 将.jrprint文件转换成HTML格式 JasperExportManager.exportReportToHtmlFile(jrprintFile); // 将.jrprint文件转换成PDF格式 JasperExportManager.exportReportToPdfFile(jrprintFile); // 将.jrprint文件转换成XML格式 //JasperExportManager.exportReportToXmlFile(jrprintFile, false); // 将.jrprint文件转换成XLS格式(即Excel文件),需要用到POI类库. File sourceFile = new File(jrprintFile); JasperPrint jasperPrint = (JasperPrint) JRLoader.loadObject(sourceFile); File destFile = new File(sourceFile.getParent(), jasperPrint.getName() + ".xls"); JRXlsExporter exporter = new JRXlsExporter(); exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(destFile)); SimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration(); configuration.setOnePagePerSheet(false); exporter.setConfiguration(configuration); exporter.exportReport(); long endTime = System.currentTimeMillis(); long time = (endTime - startTime) / 1000; System.out.println("success with " + time + " s"); }
jasperreports-5.6 + jaspersoftstudio-5.6 生成pdf 文件中文无法正常显示问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。