資源與影像最佳化
HotPDF 可以縮減已載入文件的大小,而不改變頁面圖形狀態語意,也不破壞繼承資源與註解外觀
內容與資源整併
重複的行內影像在出現次數與酬載門檻達標後,可以轉成共享的影像 XObject
掃描頁面內容、巢狀 Form XObject 與註解外觀串流之後,以保守方式移除未使用的頁面資源名稱
相容的頁面內容串流會被解碼、以安全的 token 邊界接合,並正規化成單一 Flate 串流
Form XObject 與內嵌字型依標準化解碼內容與遞迴標準化資源圖去重,比較時會正規化相容的字型子集前綴
已載入字型的子集化
SubsetLoadedFonts 從頁面內容、巢狀 Form XObject 與註解外觀串流追蹤字元碼,透過 PDF 字型編碼與 CID 對應解析每個碼,然後只保留可達的字形程式
字型字典、CID 對應、寬度與 ToUnicode 資料保留既有的識別碼,因為 TrueType、CFF 與 Type 1 子集化會保留字形 ID 或字形名稱;共享的內嵌程式會彙總所有相容字型字典的使用情況,再一次重寫
TrueType 複合字形與 COLR v0/v1 輪廓相依會遞迴閉合,而色彩、點陣、變數與整形表保持完整;Type 1 的 PFB、分割二進位與十六進位 PFA 程式保留使用到的 CharStrings,未使用的項目以有效的等長 endchar 程式取代
任何使用中的字元碼無法對應時,整個字型程式會被跳過;只接受更小的原始或 Flate 候選;預設拒絕已簽署文件,呼叫端必須明確選擇接受簽章失效
影像原則
JPEG 重壓縮可挑選合格的色彩空間、輸出品質與最小位元組節省
JPEG 2000 最佳化透過明確的非停用設定檔,支援無損與視覺無損設定檔、選用的圖磚與全部五種漸進順序
視覺成本重壓縮以解碼來源評估有界的 JPEG 或 JPEG 2000 品質試驗,拒絕超出感知誤差或最小節省限制的候選,並以確定性的平手規則挑出加權視覺誤差與位元組成本分數最低者
只有在 jbspExactGlobalsOnly 下解碼後的全域區段位元組完全相符時,JBIG2 全域資料才共享
有效 DPI 降取樣會遵循頁面與巢狀 Form 矩陣、解碼經色彩管理的來源像素,並連同所屬影像一起重新取樣軟遮罩
影像改寫色彩把支援的 ICCBased、CalGray 與 CalRGB 輸入轉成校準 RGB,不支援的校準輸入保持原樣,不強轉成四色 RGB
DownsampleLoadedImages 直接在分量空間縮放支援的 8 位元 raw、Flate、LZW、ASCII 與 RunLength Separation 或 DeviceN 影像,完整保留色彩空間圖、色調轉換、色料、/Decode 範圍與疊印語意
當 codec 無法取得原始色版取樣時,DCT、JPX、JBIG2 與 CCITT 特別色影像保持不變
若輸出需要在向量繪製、影像、圖樣、shading、透明度與 ICC 資源上統一為 Gray、RGB 或 CMYK 處理色彩空間,請使用已載入頁面的色彩改寫
調適型物件串流
物件串流打包可限制成員大小、目標容器位元組與成員數量,同時保留物件編號的局部性,並排除可能再次變動的髒物件
啟用調適型打包也會一併要求所需的 PDF 版本、xref 串流與完整重寫
主要 API
THotPDF.ExternalizeRepeatedInlineImagesTHotPDF.RemoveUnusedLoadedPageResourcesTHotPDF.CoalesceLoadedPageContentStreamsTHotPDF.DeduplicateLoadedFormXObjectsTHotPDF.DeduplicateLoadedEmbeddedFontsTHotPDF.SubsetLoadedFontsTHotPDF.RecompressLoadedJPEGImagesTHotPDF.OptimizeLoadedJPEG2000ImagesTHotPDF.OptimizeLoadedImagesByVisualCostTHotPDF.ShareLoadedJBIG2GlobalsTHotPDF.DownsampleLoadedImagesTHotPDF.RewriteLoadedPageColorsTHotPDF.ConfigureAdaptiveObjectStreamPacking