PDFium Delphi Component 文件

SaveAsReachable 方法

组件: TPdf  ·  单元: PDFium
将文档重写为单个干净修订,只保留从目录和 trailer /Info 字典可达的间接对象

Syntax

function SaveAsReachable(Stream: TStream; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;

function SaveAsReachable(const FileName: string; out Report: TPdfPruneReport; AllowSignedDocument: Boolean = False): Boolean;

Description

PDFium 先写出当前内存文档的非增量副本,使重写从规范字节开始

然后解析对象图,从目录进行的文档级可达性遍历收集每个存活的间接对象,包括页面树、页面资源、字体、图像、表单 XObject、AcroForm、结构树、大纲、名称树、可选内容、元数据、输出意图和关联文件

因增量更新、页面合并或修复保存而不可达的对象被丢弃,输出是单个经典修订,无对象流和交叉引用流

对象号和代次被保留,因此每个存活的交叉引用无需重新编号即可保持有效;不可达对象在重建的经典交叉引用表中成为空闲条目

仅当引用的对象在清扫中存活时,重建的 trailer 才将 /Root/Info/ID 向前携带

Policies and limits

Example

Pdf.SaveAsReachable('pruned.pdf', Report);
WriteLn('Kept ', Report.KeptObjectCount, ' pruned ', Report.PrunedObjectCount);

See Also

SaveAs, SaveAsRepaired, SaveAsNormalizedContent