在XMLSPY中添加FOP 字体支持
作为 XMLSpy 插件使用 FOP 默认是不支持中文字体的。在默认状态下,使用XMLSpy生成结果文件的时候,有中文的地方(或其他使用不被支持的字体,不被字符集支持的字符的地方)将被“#”代替。
可以通过设置添加用户需要的字体。FOP插件安装时附带安装的文档中有详细地说明。如果你安装了XMLSpy的FOP插件,这些文档存放在你硬盘上的地址为:
C:\Program Files\Altova\FOP\ReleaseNotes.html 。
添加字体支持的文档为:
C:\Program Files\Altova\FOP\build\site\fonts.html;
C:\Program Files\Altova\FOP\build\site\configuration.html;
C:\Program Files\Altova\FOP\build\site\embedding.html。
在完成这一系列配置前你需要安装jsdk,以使用 FOP 提供的 java 包的功能。
分三步做:
第一步 生成字体构图文件[Generating a font metrics file]
生成的字体构图文件为xml格式。Windows系统下,运行org.apache.fop.fonts.apps.PFMReader 使用下面的命令:
java -cp build\fop.jar;lib\avalon-framework.jar;lib\xml-apis.jar;lib\xercesImpl.jar;lib\xalan.jar org.apache.fop.fonts.apps.PFMReader pfm-file xml-file
举两个例子:
两个例子有细微的区别,请注意 :)
[1]生成宋体字体文件的例子:
[2]生成黑体字体文件的例子
simhei.ttf 和 simsun.ttc 文件可以在 c:/Windows/Fonts 下找到。更多信息参看fop 文档。http://xml.apache.org/fop
第二步 注册字体到 FOP[ 修改配置文件 userconfig.xml ]
修改 userconfig.xml 在 configuration/fonts 节点下插入相应的节点。
name属性的值就是在fo文档中供选取 font-family 的值。按上面的配置文件,可以通过设定 font-family=“SimHei”设定字符为黑体。
第三步 让 XMLSpy 自动读取 userconfig.xml
现在我们已经配置好了 FOP 的宋体和黑体 字体支持。如果通过命令行运行 FOP ,已经可以正确生成这两种字体。但通过 XMLSPY 菜单生成 pdf文件的时候仍然报错:“没有找到字体”!!原因是默认情况下 XMLSpy 不会自动读取 userconfig.xml 。现在我们就要解决这个问题。让 XMLSpy自动读取 userconfig.xml 。
打开 FOP 根目录下 FOP 文件[ C: / Program Files/Altova\FOP/fop.bat ],注意最后一行:
java -cp %LOCALCLASSPATH% org.apache.fop.apps.Fop %1 %2 %3 %4 %5 %6 %7 %8
Fop 命令有个可选参数 -c cfg.xml ,所以只需要把最后这一行改成 :
java -cp %LOCALCLASSPATH% org.apache.fop.apps.Fop –c config/userconfig.xml %1 %2 %3 %4 %5 %6 %7 %8
好了,终于全部搞定:D :D :D找个有中文字体的 *.fo 文件测试一下吧。
Stan
mailto:[email protected]
2003年5月23日
本文地址:http://com.8s8s.com/it/it29262.htm