Apache FOP 不支持 DocBook 的字体设置/目录

Apache FOP 不支持 DocBook 的字体设置/目录

我正在尝试在 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> 

相关内容