转-为ThinkingRock的REPORT添加中文字体

ThinkingRock 是一个基于GTD 的开源软件,它的“报表”功能可以生成各种格式的报告,其中pocketmod 是我最喜欢的,不过,美中不足的是ThinkingRock的缺省配置是不支持中文报告生成的,需要进行一些配置来使它支持中文报告。

由于ThinkingRock采用Apache FOP来生成PDF文件,而内置的字体没有汉字字体,造成生成PDF报告时中文字体只能显示成#,不过好在Apache FOP支持汉字,我们只要添加汉字字体文件以及修改增加些配置即可。

 步骤如下:

(1)由于ThinkingRock只内置了Courier、Helvetica和Times Roman三种字体,我们需要添加一种汉字字体,获得字体,我用的是WinXP的仿宋字体simfang.ttf。

(2) 生成TRUE TYPE(.ttf)的Font Metrics Files,在命令行状态下,进入ThinkingRock/lib目录下,使用命令“java -cp {path}\fop.jar;{path}\avalon-framework.jar;{path}\commons-logging.jar;{path}\commons-io.jar org.apache.fop.fonts.apps.TTFReader simfang.ttf simfang.xml”来生成simfang.xml,这里{path}是fop.jar,avalon- framework.jar,commons-logging.jar,commons-io.jar所在的路径,一般在ThinkingRock的 lib子目录下,输入时还要注意这几个JAR文件名字的一致性

(3)复制simfang.ttf以及simfang.xml到ThinkingRock所在目录下的resource/fop子目录里;

(4)编辑resource/fop/目录下的fop.xconf,在<fonts></fonts>段内增加几行,如下:

<font metrics-url="simfang.xml" kerning="yes" embed-url="simfang.ttf">

<font-triplet name="Simfang" style="normal" weight="normal"/>

</font>

<font metrics-url="simfang.xml" kerning="yes" embed-url="simfang.ttf">

<font-triplet name="Simfang" style="normal" weight="bold"/>

</font>

<font metrics-url="simfang.xml" kerning="yes" embed-url="simfang.ttf">

<font-triplet name="Simfang" style="italic" weight="normal"/>

</font>

至此,配置修改好了,打开ThinkingRock程序,在输出报告时字体选择“simfang”,PDF文件即显示正确的汉字。

也可以下载我配置好的文件:

点击下载此文件

下面文章或许你还感兴趣

  • Ubuntu 源安装Oracle JAVA
  • maven 发布项目到nexus服务器中
  • 解决Spring Tool Suite和Maven2找不到JDK的问题
  • Maven2 常用命令
  • 收藏 悼念一个伟大的公司——Sun
  • Maven 2 JasperReports Plugin配置
  • FDT3.5正式版已经发布
  • 收藏-Flex Builder 3 on Eclipse 3.5
  • 收藏Flexmojos Adding libraries to compilation
  • Ubuntu下搭建Java开发环境

转-为ThinkingRock的REPORT添加中文字体》上有 2 条评论

  1. 你好,请问你用的是Thinkingrock的哪一个版本?
    我用的是2.2.1,使用了你的文件,其它都没有什么问题,可就是pocketmod始终无法输出中文,请问你有没有碰到这样的问题?还望赐教,谢谢!
    [reply=bonashen,2009-10-20 10:49 PM]
    是2.2.1,可是DO ASAP等自动产生PDF的功能,还是无法支持中文。[/reply]

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>