HTML XSL-FO 编码字母

HTML encoded letters in XSL-FO

我正在使用 XSLT 将 XML 转换为 XSL-FO,然后从中创建 PDF(使用 Apache FOP)。不幸的是,我在 XML 中有 HTML 个编码字母,例如:

<TAG>wp&#322;yw</TAG>

如何在我的输出 PDF 中使用 Ł 而不是 &#322;

FOP 的配置似乎没有正确设置。编辑或复制文件 fop.xconf,您将在 FOP 安装目录的 conf 文件夹中找到该文件。

在此文件中,找到 <renderer mime="application/pdf"> 标记。在 <fonts> 子标签内,添加 <auto-detect/>。 您应该获得这样的 <renderer> 配置(我已删除所有注释文本):

<renderer mime="application/pdf">
  <filterList>
    <!-- provides compression using zlib flate (default is on) -->
    <value>flate</value>

    <!-- encodes binary data into printable ascii characters (default off)
         This provides about a 4:5 expansion of data size -->
    <!-- <value>ascii-85</value> -->

    <!-- encodes binary data with hex representation (default off)
         This filter is not recommended as it doubles the data size -->
    <!-- <value>ascii-hex</value> -->
  </filterList>

  <fonts>
    <!-- ... lots of commented stuff in here ... -->

    <auto-detect/>

  </fonts>
</renderer>

然后你应该用 -c 选项调用 fop 命令,例如

 fop -c path/to/file/fop.xconf myfile.fo myfileout.pdf

并且它应该可以正常工作(假设字体可以正确呈现特定字符)。