Servigistics InService 自定义 > 自定义打印 > Servigistics InService 书籍打印 > 默认字体配置 > 字体配置
  
字体配置
Servigistics InService 书籍打印使用安装在正在运行的服务器操作系统上的字体文件。要能够在 XSL-FO 样式表中使用这些字体或使用附加字体,您可能需要编辑位于文件夹 InS_SW/Config/System/Config/Core/Version/Resources/Font 下的配置文件 FontSetup.xml
提供的 FontSetup.xml 文件中的路径取决于安装环境所在的操作系统 (这些路径是操作系统字体文件夹的相对路径)。
FontSetup.xml 配置文件用于将 XSL FO 样式表中的字体系列名称映射到实际字体文件中,其中包括多种变型 (如适用):斜体、倾斜、粗体、粗斜体等。如果样式表选择的字体系列不可用,您还可以将字体替换定义为回退。
配置文件的格式和语法实质上独立于操作系统,二者的不同之处在于路径的表示方式。根据需要插入以下示例。
要定义新的字体系列,请添加具有用于定义字体名称的 FamilyName 属性的字体元素:<Font FamilyName="Times New Roman">
* 
该值不区分大小写。
字体元素可具有以下任意子元素,每个元素都具有用于指定字体文件完整路径的 FontFile 属性 (即,通常位于操作系统的字体文件夹下):
Regular:指定“一般”字体文件的完整路径。
Bold:指定“加粗”字体文件的完整路径。
Italic:指定“斜体”字体文件的完整路径。
BoldItalic:指定“粗斜体”字体文件的完整路径。
例如,在 Windows 中:
<Font FamilyName="Verdana">
<Regular FontFile="verdana.ttf"/>
<Bold FontFile="verdanab.ttf"/>
<Italic FontFile="verdanai.ttf"/>
<BoldItalic FontFile="verdanaz.ttf"/>
</Font>
* 
或者,可以指定您的字体的路径。
替代字体
要定义替代字体 (即,在 XSL FO 中指定的不同字体不可用时要使用的回退字体),请将具有以下属性的 Substitute 元素添加为 FontList 的第一个子元素:
OldFont:指定要替代的字体的名称。
NewFont:指定旧字体时指定要使用的字体的名称。
<Substitute OldFont="Courier" NewFont="Lucida Console" />
还可以将字体列表映射为替代 (即,可将一般字体名称映射到多个字体)︰
<Substitute OldFont="sans-serif" NewFont="Trebuchet MS, Tahoma,
Arial, Verdana, Helvetica" />
<Substitute OldFont="serif" NewFont="Bitstream Cyberbit, Times New Roman" />
Linux
在 Linux 上,需手动完成字体安装。您需要创建您自己的 FontSetup.xml 文件并按照上述详细说明定义新字体。将字体路径设置为操作系统上已安装字体的位置。
例如,Linux 上的 FontSetup.xml 文件,其中字体位于 /opt/Fonts/TrueType
<FontList>
<Font FamilyName="Verdana">
<Regular FontFile="/opt/Fonts/TrueType/verdana.ttf"/>
<Bold FontFile="/opt/Fonts/TrueType/verdanab.ttf"/>
<Italic FontFile="/opt/Fonts/TrueType/verdanai.ttf"/>
<BoldItalic FontFile="/opt/Fonts/TrueType/verdanaz.ttf"/>
</Font>
<Font FamilyName="......">
<Regular FontFile="......"/>
<Bold FontFile="......"/>
<Italic FontFile="......"/>
<BoldItalic FontFile="......"/>
</Font>
<......>
<......>
</FontList>
指向字体文件的每个元素都可以具有可选的 FontIndex 属性。如果指定的字体文件是一个集合文件 (.ttc 文件),请在 FontIndex 属性中指定字体的索引 (0, 1, 2 ... {n-1})
* 
默认值为 0,因此,如果未指定 FontIndex,则会自动获取第一种字体;如果文件不是集合字体,则会忽略该属性。
例如:
<Font FamilyName="MS Gothic">
<Regular FontFile="msgothic.ttc" FontIndex="1" />
</Font>
要一起定义字体系列及其变型,请将显式样式和/或字体粗细添加到字体名称中。例如,可将以下字体元素添加到上面的 Verdana 示例中:
<Font FamilyName="Verdana Bold">
<Regular FontFile="verdanab.ttf"/>
<Italic FontFile="verdanaz.ttf"/>
</Font>
<Font FamilyName="Verdana Bold Italic">
<Regular FontFile="verdanaz.ttf"/>
</Font>
<Font FamilyName="Verdana Italic">
<Regular FontFile="verdanai.ttf"/>
<Bold FontFile="verdanaz.ttf"/>
</Font>
* 
仅在存在相应字体文件时指定字体映射。例如:如果为“常规”和“斜体”指定了同一种字体,则斜体样式看起来会与常规文本完全相同。另一方面,如果 FO 为仅具有“常规”映射的字体指定了“斜体”,则 Servigistics InService 书籍打印将使“常规”字体倾斜。
字体嵌入
要在生成的 PDF 中嵌入字体,请使用属性 Embed="YES",否则请设置为 Embed="NO"
指定 Embed="YES" 时,您还可以指定 Subset="YES",在这种情况下,书籍打印将仅嵌入实际使用的字体中的字符。
* 
默认行为是嵌入所有字体。
可将上述属性添加到 FontSetup.xml 中的任意位置:
要为所有字体设置默认值:请将属性添加到最顶端的 FontList 元素中。
要为所有版本的字体设置属性:请将属性添加到字体元素中。
要为特定的字体样式设置属性,请将属性添加到 RegularBoldItalicBoldItalic 元素中。
通常,会将默认设置添加到根元素中,然后为应以不同方式处理的任何非标准字体覆盖默认设置。例如:
<FontList Embed="NO" Subset="NO">
...
<Font FamilyName="Barcode">
<Regular Embed="YES" Subset="YES" FontFile="BARCODE.TTF"/>
</Font>
...
</FontList>