【问题标题】:XSL Fo - Speacial charactersXSL Fo - 特殊字符
【发布时间】:2013-02-23 13:52:37
【问题描述】:

我正在设计一个 xsl 表单,我的源 pdf 包含“钻石”符号

  1. 我需要知道如何使用 xsl 使用/创建菱形字符(是否有任何字体系列我可以配置和使用/我可以使用 Unicode 字符获取符号)。
  2. 还有如何在 xsl 表单中使用其他特殊字符。还需要知道如何创建空白

【问题讨论】:

  • 对于 2.,不清楚创建空格是什么意思。如果您要保留空格,则可以使用诸如 linefeed-treatment='preserve'; 之类的属性。或者如果您要插入空格,请使用 一个不间断的空间。

标签: xslt pdf-generation xmldocument xsl-fo


【解决方案1】:

您可以在 XML 中使用以下 character reference 来生成 ◆ 字符(Unicode U+25C6 黑菱形)。

◆

【讨论】:

  • 嗨 jukka,如果有任何参考网站或教程,我不确定如何在我的 xsl fo 中使用 unicode 会有所帮助
  • @lourdh,您可以直接在 XSL-FO 标记中使用字符引用。示例:这里有一些文字。 ◆还有一些文字。
  • @Jukka 在调用 FOP 时如何让该字形工作?我一直设置内联字体(请参阅我的答案),我很好奇您是否使用不同的、更强大的方法
  • @ljdelight,我实际上从来不需要使用那个特定的字形。对于 FOP,我将其配置为使用并嵌入我需要的字体。如果我真的需要使用 U+25C6,我可能会看一下 DejaVu 字体,因为它们对 Unicode 有很好的覆盖并且有免费许可证:dejavu-fonts.org
【解决方案2】:

我发现一些 Unicode 字符使用起来有点棘手,因为很多字体没有特定的字形。当您看到错误警告时,您就知道字体中缺少字形(菱形):字形“◆”(0x25c6,blackdiamond)在字体中不可用

这是一个使用 fo:inline 更改为具有字形的字体的小示例。我设置了 fo:root 字体系列,所以整个文档默认为 SansSerif; fo:page-sequence 也设置为使用等宽字体 Courier;然后 fo:inline 使用 ZapfDingbats。

也许有一种更简单的方法来使用一堆字体而不定义它们(fop 字体配置?),但我不熟悉它。

<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="SansSerif" font-size="10pt">
  <fo:layout-master-set>
      <fo:simple-page-master margin-right="0.5in" margin-left="0.5in" margin-bottom="1in" margin-top="1in" 
          page-width="8.5in" page-height="11in" master-name="main">
        <fo:region-body margin-top="1cm"/>
        <fo:region-before extent="1cm"/>
        <fo:region-after extent="1.5cm"/>
      </fo:simple-page-master>
  </fo:layout-master-set>

  <fo:page-sequence master-reference="main" font-family="Courier">
    <fo:flow flow-name="xsl-region-body">
      <fo:block>This is a &amp;#x2666; hex (&amp;#9830; decimal): 
        <fo:inline font-family="ZapfDingbats">&#9830;</fo:inline>
      </fo:block>
      <fo:block>Here is &amp;#x25C6;: 
        <fo:inline font-family="ZapfDingbats">&#x25C6;</fo:inline>
      </fo:block>
    </fo:flow>
  </fo:page-sequence>

</fo:root>

【讨论】:

    猜你喜欢
    • 2018-06-22
    • 2015-06-11
    • 2017-06-12
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 2018-12-27
    • 2021-03-17
    • 2013-06-06
    相关资源
    最近更新 更多