资源与图像优化
HotPDF 可以在不改变页面图形状态语义或破坏继承资源和批注外观的情况下减小已加载文档的大小
内容与资源整合
重复的内联图像在满足出现次数和负载阈值后可以成为共享的图像 XObject
扫描页面内容、嵌套表单 XObject 和批注外观流后,保守地移除未使用的页面资源名称
兼容的页面内容流被解码、以安全的标记边界连接并规范化为单个 Flate 流
表单 XObject 和嵌入字体从规范解码内容和递归规范资源图去重,比较期间规范化兼容的字体子集前缀
已加载字体子集化
SubsetLoadedFonts 通过页面内容、嵌套表单 XObject 和批注外观流追踪字符代码,通过 PDF 字体编码和 CID 映射解析每个代码,然后只保留可达的字形程序
字体字典、CID 映射、宽度和 ToUnicode 数据保留其现有标识符,因为 TrueType 和 CFF 子集化保留字形 ID;共享的嵌入程序在一次重写前聚合每个兼容字体字典的使用情况
当任何使用的代码无法映射时,该操作跳过整个字体程序,只采用更小的原始或 Flate 候选,默认拒绝签名文档,因此调用方必须显式选择加入签名失效
任何一个使用中的码无法映射时,该操作会跳过整个字体程序;只采纳更小的 raw 或 Flate 候选;默认拒绝已签名文档,调用方必须显式选择接受签名失效
图像策略
JPEG 重新压缩选择符合条件的色彩空间、输出质量和最小字节节省
JPEG 2000 优化通过显式非禁用配置文件支持无损和视觉无损配置文件、可选瓦片和全部五种渐进顺序
视觉成本重新压缩对照解码源求值有界的 JPEG 或 JPEG 2000 质量试验,拒绝超出感知误差或最小节省限制的候选,并选择带确定性平局打破的最低加权视觉误差和字节成本得分
JBIG2 全局数据只在 jbspExactGlobalsOnly 下确切解码的全局段字节匹配时共享
有效 DPI 降采样遵循页面和嵌套表单矩阵,解码色彩管理的源像素,并与其所属图像一起重采样软蒙版
图像重写的颜色转换把受支持的 ICCBased、CalGray 和 CalRGB 输入转换为校准 RGB;不受支持的校准输入保持原样,不会被转换成 process RGB
DownsampleLoadedImages 直接在分量空间缩放受支持的 8 位 raw、Flate、LZW、ASCII 和 RunLength Separation 或 DeviceN 图像,精确保留色彩空间图、tint 变换、着色剂、/Decode 范围和套印语义
图像重写色彩转换将受支持的 ICCBased、CalGray 和 CalRGB 输入转换为校准 RGB,而不受支持的校准输入、Separation 和 DeviceN 图像保持原样,而不是转换为过程 RGB
如果需要在矢量绘制、图像、pattern、shading、透明度和 ICC 资源上统一输出为 Gray、RGB 或 CMYK 处理色彩空间,请使用已加载页面颜色重写
自适应对象流
对象流打包可以约束成员大小、目标容器字节和成员数,同时保留对象编号局部性并排除可能再次更改的脏对象
启用自适应打包还会请求所需的 PDF 版本、xref 流和完整重写
主要 API
THotPDF.ExternalizeRepeatedInlineImagesTHotPDF.RemoveUnusedLoadedPageResourcesTHotPDF.CoalesceLoadedPageContentStreamsTHotPDF.DeduplicateLoadedFormXObjectsTHotPDF.DeduplicateLoadedEmbeddedFontsTHotPDF.SubsetLoadedFontsTHotPDF.RecompressLoadedJPEGImagesTHotPDF.OptimizeLoadedJPEG2000ImagesTHotPDF.OptimizeLoadedImagesByVisualCostTHotPDF.ShareLoadedJBIG2GlobalsTHotPDF.DownsampleLoadedImagesTHotPDF.RewriteLoadedPageColorsTHotPDF.ConfigureAdaptiveObjectStreamPacking