我正在尝试在 DocBook 项目中使用 Microsoft 的 Arial Unicode 字体。该项目正在使用Apache 的 FOP. FOP 安装在/usr/local/bin/fop-1.1
。
字体Arial_Unicode.ttf
安装在/usr/share/fonts/truetype/
:
$ ls -l /usr/share/fonts/truetype/
total 22812
drwxr-xr-x 2 root root 4096 Oct 22 11:43 abyssinica
-rw-r--r-- 1 root root 23278008 Oct 8 2013 Arial_Unicode.ttf
drwxr-xr-x 2 root root 4096 Nov 7 12:02 dejavu
...
FOP的配置文件位于:
$ find /usr/local/bin/fop-1.1/ -iname *.xconf
/usr/local/bin/fop-1.1/conf/fop.xconf
我打开fop.xconf
并添加了两个directory
元素和元素auto-detect
下的renderer
元素mime="application/pdf"
批量字体配置:
<renderers>
<renderer mime="application/pdf">
<filterList>
...
</filterList>
<fonts>
<directory recursive="true">/usr/share/fonts</directory>
<directory recursive="true">/usr/share/fonts/truetype</directory>
<!-- automatically detect operating system installed fonts -->
<auto-detect/>
...
</fonts>
...
当我制作我的书时,几乎所有的字形都是#
:
当使用不同的对象处理器(例如RenderX 的 xep),文档就会呈现。所以我认为 DocBook XML 是好的(特别是使用 的自定义翻译Arial_Unicode.ttf
)。
如何让 Apache FOP 遵守其配置?
答案1
尝试在配置文件中明确指定 Arial 字体:
<?xml version="1.0"?>
<fop>
<renderers>
<renderer mime="application/pdf">
<fonts>
<font kerning="yes" embed-url="file:///C:/windows/fonts/arial.ttf">
<font-triplet name="Arial" style="normal" weight="normal"/>
</font>
</fonts>
</renderer>
</renderers>
</fop>