PDFium Delphi Component Docs

CompareWith 方法

组件: TPdf  ·  单元: PDFium
比较两个活动文档并返回有边界的语义、几何与视觉证据

语法

function CompareWith(Other: TPdf; const Options: TPdfDocumentDiffOptions; out Report: TPdfDocumentDiffReport): Boolean;

OtherTPdf。另一个活动文档
OptionsTPdfDocumentDiffOptions。字段 RenderWidth、RenderHeight、ColorTolerance、CompareText、ComparePageGeometry 和 MaxPages,并提供 Default 类函数
ReportTPdfDocumentDiffReport。字段 Equivalent、Truncated、LeftPageCount、RightPageCount、ComparedPageCount、DifferentPageCount、PixelDifferenceCount 和 Differences;每个 TPdfPageDifference 携带 PageIndex、TextDifferent、GeometryDifferent、PixelDifferenceCount 和 PixelBounds
ResultBoolean。在所选选项下两个文档等价时为 True

说明

比较使用 PDFium 文本提取和渲染,而不是并行解释内容流

几何比较包括页面尺寸和旋转;视觉比较按通道应用调用方的颜色容差,并报告发生变化的像素边界

MaxPages 为不受信任或非常大的文档限定工作量,Truncated 报告比较是否在该限制处停止

在方法返回之前会恢复两个文档的当前页面

页面对齐与详细比对

旧 Default 选项按对应页位置比较;将 AlignPages 设为 True,可识别插入、删除和精确页面移动

对齐使用提取文本、页面几何和 64-by-64 渲染指纹;重复页配对是确定性的,同时修改并移动的页面可能报告为修改

PagePairs 和每项差异提供从零开始的 LeftPageIndex、RightPageIndex,缺页使用 -1;Kind 为 dpkMatched、dpkModified、dpkMoved、dpkInserted 或 dpkDeleted

TextDiffMode 选择 dtmNone、dtmCharacters 或 dtmWords;TextChanges 报告 UTF-16 的 LeftStart、LeftLength、RightStart 和 RightLength,不拆分代理对

CollectPixelRegions 添加由连通图块组成的 PixelRegions,Right 和 Bottom 边界不包含在内,同时保留旧 PixelBounds 并集

MaxAlignmentCells、MaxTextCharacters、MaxTextDiffCells、MaxTextTokens、PixelRegionTileSize、MaxPixelRegions 和 MaxDetailItems 限制细节工作量;DetailTruncated 表示细节不完整,独立于页数限制的 Truncated

Report 包含 InsertedPageCount、DeletedPageCount 和 MovedPageCount;每项差异还带有自己的 DetailTruncated

RenderDiffOverlay 导出调用方拥有的视觉叠加图;FPdfDiff 提供带资源上限的辅助算法

参见

RenderPage, Text, ImportImposed