最近使用ireport设计标签模板,用户要求使用Times New Roman加粗字体,但是、在ireport中选择了如下,生成的pdf字体格式却不变。
看了下jasperreports-fonts-4.5.1.jar下的文件,打开fonts.xml,发现没有配置Times New Roman的字体文件,参考了http://blog.sina.com.cn/s/blog_a59b6d310102wjza.html,进行以下处理
1、打开电脑C:WindowsFonts,找到Times New Roman文件,复制出来粘贴到一个临时文件夹,会发现变成4个ttf文件
2、直接用winrar解压jasperreports-fonts-4.5.1.jar, 将4个ttf文件放到net.sf.jasperreports.fonts.dejavu包下,并在fonts.xml文件添加以下内容:
<fontFamily name="Times New Roman"> <normal>net/sf/jasperreports/fonts/dejavu/times.ttf</normal> <bold>net/sf/jasperreports/fonts/dejavu/timesbd.ttf</bold> <italic>net/sf/jasperreports/fonts/dejavu/timesi.ttf</italic> <boldItalic>net/sf/jasperreports/fonts/dejavu/timesbi.ttf</boldItalic> <pdfEncoding>Identity-H</pdfEncoding> <pdfEmbedded>true</pdfEmbedded> </fontFamily>
3、重新打包成jar,打开cmd命令行,打开到D:jasperreports-fonts-4.5.1(我把jar包直接解压到D盘),执行 jar cf jasperreports-fonts-4.5.1.jar * ,则生成jasperreports-fonts-4.5.1.jar,替换项目中的jar包,重新编译就可以生成Times New Roman加粗字体的pdf了。下面上效果图对比