THotPDF.CompactFontSubsetting

THotPDF

 

屬性  EnableFontSubsetting  FontEmbedding

控制字型子集要不要把保留的字形重新編號,重編之後子集會小很多

 

Delphi 語法:

property CompactFontSubsetting: Boolean;

 

C++ syntax:

__property bool CompactFontSubsetting;

 

說明

在 BeginDoc 之前把 CompactFontSubsetting 設為 true,寫出的字型子集就會是緊湊格式。一般子集沿用來源字型的字形編號:沒用到的字形被清空,但字型照樣宣告每一個字形,每個字形也都帶著位置與寬度條目。對一個有兩萬到三萬個字形的 CJK 字型來說,光這些表在壓縮前就多出 200 KB 以上,哪怕頁面上只印了兩個字

 

緊湊子集把保留的字形重新編號成連續區間,只為這些字形重建字型表。頁面內容仍以 CID 顯示原始字形編號,再靠一條明確的 /CIDToGIDMap stream(ISO 32000-1 9.7.4.2)把它們對應到重編後的字形,文字、寬度和文字擷取都不受影響。SimSun 的兩個中文字,一般子集要佔約 25 KB 字型資料,緊湊子集只要約 3 KB

 

這個屬性作用在以 Type 0 字型寫出的 TrueType 字型(EnableFontSubsetting 開啟時),以及用 RegisterUnicodeTTF 註冊的字型(後者一定做子集)。OpenType-CFF 字型維持一般子集。某個字型建不出緊湊子集時,HotPDF 會退回一般子集

 

屬性預設關閉,既有輸出不受影響。PDF/A 之下,註冊字型一律拿到緊湊子集。緊湊子集最適合定稿輸出:之後用同一字型往文件裡加字需要新的子集,事後合併的文件也無法共用同一字型的子集

 

請參閱: EnableFontSubsetting, FontEmbedding, RegisterUnicodeTTF