XSL Fo - 特殊字符

时间:2013-03-08 04:46:25

标签: xslt pdf-generation xmldocument xsl-fo

我正在设计一个xsl表单,我的源代码pdf包含' Diamond'符号

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

2 个答案:

答案 0 :(得分:0)

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

◆

答案 1 :(得分:0)

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

这是一个使用fo的小例子:内联更改为具有字形的字体。我设置了fo:root字体系列,因此整个文档默认为SansSerif; fo:page-sequence也设置为使用monospace font Courier;然后fo:inline使用ZapfDingbats。

也许有一种更容易的方法来使用一堆字体而不定义它们(fop font config?)但是我不熟悉它。

<?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>