Servigistics InService 自訂 > 自訂列印 > 字型組態
  
字型組態
Servigistics InService 書本列印使用執行伺服器之 OS 中安裝的字型檔案。為了能夠在 XSL-FO 樣式表中使用這些字型,或使用其他字型,您可能需要編輯資料夾 InS_SW/Config/System/Config/Core/Version/Resources/Font 下的組態檔案 FontSetup.xml
所提供 FontSetup.xml 檔案中的路徑取決於安裝環境的 OS (這些是 OS 字型資料夾的相對路徑)。
FontSetup.xml 組態檔案可用來將 XSL FO 樣式表中的字型系列名稱對應至實際字型檔案,包括適用的變體 (斜體、傾斜、粗體、粗斜體等)。您也可以定義字型替代,作為樣式表選取無法使用的字型系列時的遞補。
組態檔案的格式與語法基本上獨立於 OS,所不同的是表示路徑的方式。視需要插入下列範例。
欲定義新字型系列,請新增「字型」元素,且包含定義字型名稱的 FamilyName 屬性:<Font FamilyName="Times New Roman">
* 
值不區分大小寫。
「字型」元素可擁有下列任何子元素,每個子元素都具有指定字型檔案完整路徑的 FontFile 屬性 (即,通常位於 OS 的「字型」資料夾下):
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 檔案,並如上所述定義新字型。將字型的路徑設定為 OS 中已安裝字型的位置。
例如,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>