iReport的文件pdf字体设置及web项目中的应用

  最近的项目一直在用iReport做报表,都是打印pdf文件的那种。从网上搜了n多信息,获益匪浅,总结了一下,并增加了一些自己的理解,不当之处还请留言指正。
 
1.iReport引入字体
       a.工具——选项——classpath——add folder
           可以引入任意位置的字体。
b.将要在打印pdf文件中使用的字体复制到 安装路径中Jaspersoft\iReport-nb-3.6.0\ireport\fonts下面。(本人用的是3.6)
2. 元素pdf属性的设置:
Pdf font name  的下拉框可能不会出现classpath中引入的字体(本人用的是win7,关闭了ireport 好多次后,新引入的字体在下拉框才出现),此时可以直接手工输入字体名称,上例:simkai.ttf
Pdf Embedded 选不选均可。
Pdf Encoding 一定要选:Identity-H (Unicode with horizontal writing)
3. 项目中配置
把pdf使用的字体放到项目的src或classes下即可。(网上看到一篇文章说3.7必须把字体打成jar包才行,不知真假,不过3.6的却是不用)
4. 关于粗体斜体
  关于pdf是如何使用字体的,我实在不了解,我相信大部分人都不了解。
网上看到很多文章(其实说的是一个内容)说了两中解决方法:一种说源码有漏洞,建议更改源码,一种说在输出pdf时设置字体的输出样式。我本人觉得都不靠谱。jasperreports都发展到了3.7了,而且pdf这么重要的的功能,不可能留下如此漏洞让你去发现,而且我觉得除非十分必要,否则不要改这种源码。第二种方法不靠谱的地方在于同时存在同一种字体的粗体和斜体(字体+粗体、字体+斜体),估计这个方法就实现不了了。

我的解决方法:
   下拉pdf font name 选项,会发现很多字体后面都有bold, italic。
   所以只需要下载相应字体的粗体和斜体即可。
   然后只需要将pdf font name设置成相应字体的粗体或斜体文件即可。 (中文的一些粗体斜体不好找)
  

2011-05-18补充:最近下载了新版的ireport,发现正如我所预想的那样:导入字体时分别要导入字体的粗体和斜体。
    不能评论这样做是对是错。但这样可能对项目打包发布者需要更多的时间和耐心了。

    jasperReports是建立在iText这上的一个框架,iText却不需要导入如此多的字体。只需要通过参数设置其粗体、斜体即可。也许是jasper基于更多的考虑才这样做。

你可能感兴趣的:(Web)