PDFium Delphi Component Docs

CompareWith Метод

Компонент: TPdf  ·  Модуль: PDFium
Сравнивает два активных документа и возвращает ограниченные семантические, геометрические и визуальные доказательства

Syntax

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, когда документы эквивалентны при выбранных параметрах

Description

Сравнение использует извлечение текста и рендеринг PDFium вместо параллельной интерпретации потоков содержимого

Геометрия включает размеры и поворот страницы; визуальное сравнение применяет допуск цвета вызывающей стороны по каждому каналу и сообщает границы изменившихся пикселей

MaxPages ограничивает работу для недоверенных или очень больших документов, а Truncated сообщает, что сравнение остановилось на этом пределе

Текущая страница обоих документов восстанавливается до возврата из метода

Выровненное и подробное сравнение

Устаревшие стандартные параметры сравнивают соответствующие позиции страниц; установите AlignPages в True, чтобы выявлять вставки, удаления и точные перемещения страниц

Выравнивание использует извлечённый текст, геометрию страниц и отпечаток рендеринга 64 на 64; сопоставление дубликатов детерминировано, а одновременно изменённые и перемещённые страницы могут сообщаться как изменения

PagePairs и каждое различие открывают LeftPageIndex и RightPageIndex с нулевой базой, где -1 означает отсутствующую страницу; Kind равен dpkMatched, dpkModified, dpkMoved, dpkInserted или dpkDeleted

TextDiffMode выбирает dtmNone, dtmCharacters или dtmWords; TextChanges сообщает LeftStart, LeftLength, RightStart и RightLength в UTF-16 без разрыва суррогатных пар

CollectPixelRegions добавляет связанные плиточные PixelRegions с исключительными границами Right и Bottom, сохраняя устаревшее объединение PixelBounds

MaxAlignmentCells, MaxTextCharacters, MaxTextDiffCells, MaxTextTokens, PixelRegionTileSize, MaxPixelRegions и MaxDetailItems ограничивают работу над деталями; DetailTruncated указывает на неполные детали независимо от Truncated по пределу страниц

Report включает InsertedPageCount, DeletedPageCount и MovedPageCount; каждое различие также несёт свой DetailTruncated

RenderDiffOverlay экспортирует принадлежащий вызывающему визуальный слой наложения; FPdfDiff открывает ограниченные вспомогательные алгоритмы

See Also

RenderPage, Text, ImportImposed