第一章 问题描述
在报表中是以“图形方式”导出pdf,会有如下问题:导出pdf文件较大、pdf字体与html字体不一致、无法自己选中报表位置添加签章,所以本文将介绍如何以“文字方式”导出pdf。
第二章 配置方法
使用解压缩软件,解压缩WEB-INF\lib\unieap-report-engine-*.jar文件,在该jar包中找到com\neusoft\report\engine\export目录,修改该目录下的配置文件exporter.properties;
将如下内容
2=com.neusoft.report.engine.export.pdf.PdfExporter
修改为:
2=com.neusoft.report.engine.export.pdf.PdfExporterWithFonts
把iTextAsian.jar放在WEB-INF/lib下;
把fonts文件夹放在WEB-INF\conf\UniEAP\report\下,fonts文件夹包括配置文件及ttf字体库文件;使用该种方式,需要自行配置字体文件位置,来保证导出的PDF中字体与最初所设置的字体相同,如果想要导出的字体加粗,那么对应的导出字体需要更换为同类型的粗体字体,如下面的仿宋和仿宋粗体。
修改WEB-INF\conf\unieap\report\fonts\fonts.xml
<fonts>
<font>
<name>HeiTi</name>
<path><![CDATA[<</u02/bea/user_projects/sbjb/eapdomain/WEB-INF/conf/unieap/report/fonts/SIMHEI.TTF]]></path>
</font>
<font>
<name>KaiTi</name>
<path><![CDATA[<</u02/bea/user_projects/sbjb/eapdomain/WEB-INF/conf/unieap/report/fonts/SIMKAI.TTF]]></path>
</font>
<font>
<name>FangSong</name>
<path><![CDATA[<</u02/bea/user_projects/sbjb/eapdomain/WEB-INF/conf/unieap/report/fonts/SIMFANG.TTF]]></path>
</font>
<font>
<name>SongTi</name>
<path><![CDATA[<</u02/bea/user_projects/sbjb/eapdomain/WEB-INF/conf/unieap/report/fonts/simsun.ttc]]></path>
</font>
<font>
<name>Times New Roman</name>
<path><![CDATA[<</u02/bea/user_projects/sbjb/eapdomain/WEB-INF/conf/unieap/report/fonts/times.ttf]]></path>
</font>
<font>
<name>FangSongCuTi</name>
<path><![CDATA[<</u02/bea/user_projects/sbjb/eapdomain/WEB-INF/conf/unieap/report/fonts/SIMFANGCU.TTF]]></path>
</font>
</fonts>
【注意】在该配置文件中每个font节点代表一种字体,其中name子节点代表字体名称,path代表字体库文件路径。
【注意】在linux下,字体文件绝对路径前需要添加<<,itext识别的字体名称不是中文的“楷体”、“仿宋”,而是"KaiTi","FangSong"。
配置完成后,需要重新启动应用服务器,使配置生效。