fop加中文字体配置

  1. 官方地址:Apache(tm) FOP: Fonts

官方配置文档:解压下载包,在fop-2.3\fop\examples/fo/advanced里面的cid-fonts.pdf,本文档内容仅适用于0.85版本的fop,需要给字体文件生成xml,现在的新版本不必如此。推荐下载使用新版本。详见官方文档,可翻译。

 

 

 

  1. 找到字体文件,不用生成xml文件(示例使用的fop-2.3就不用)

 

 

 

 

 

 只需要设置配置文件即可。

如果是特殊字体,建议将字体放置在fop文件夹内,方便配置后期迁移使用,如果是普通的系统字体,在fop.xconfig中设置一下<auto-detect/>即可,在命令中加载此配置文件时会自动加载系统字体,但是会速度较慢,如果特定使用某一或某些字体,也建议将字体放在fop文件夹内,然后配置配置文件,特定加载该字体文件。

  1. fop的配置文件:fop-2.3\fop\conf里面的fop.xconf

示例配置(来自官网)

ttf

 ttc

 

 

 示例位置,因为直接在fop.xconf同一路径,所以url可以直接写simsun.ttc,也能识别到。

 

 

 

 

<font embed-url="simsun.ttc" sub-font="SimSun">
    <font-triplet name="SimSun" style="normal" weight="normal"/>
    <font-triplet name="SimSun" style="normal" weight="bold"/>
    <font-triplet name="SimSun" style="italic" weight="normal"/>
    <font-triplet name="SimSun" style="italic" weight="bold"/>
</font>

 

PS:如果有多个字体文件,不想直接放置在conf文件夹下,可以在conf文件夹内新建fonts文件夹,放置字体文件。然后在fop.xconf文件中新增参数“font-base”,如图所示:

 

 

 

 

  1. 设置xsl文件和xml文件

自带的示例文件和命令:切换到fop的主文件夹,输入命令:

fop -xsl xsl文件位置 -xml xml文件位置 -pdf pdf文件位置

 

 

 

  1.  修改xml文件,修改xsl文件,输入中文。

xsl文件是pdf的格式输入中文;xml文件是pdf的内容输入中文

 

 

 

 

 

 

 输入命令:重点!!!一定要加上-c cong配置文件所在位置。

 

 

执行完毕后,打开pdf查看,应用中文成功。

 

 

 

 

重点:conf文件中针对ttc的字体一定要配置sub-font参数,否则会出现如下报错:

 java.lang.RuntimeException: Failed to read font file simsun.ttc

java.lang.IllegalArgumentException: For TrueType collection you must specify which font to select (-ttcname)

 

 

 

posted @ 2022-10-18 09:43  幻月风  阅读(1048)  评论(0编辑  收藏  举报