PDFium Delphi Component Docs

Método CompareWith

Componente: TPdf  ·  Unidad: PDFium
Compara dos documentos activos y devuelve evidencia semántica, geométrica y visual acotada

Sintaxis

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

OtherTPdf. El otro documento activo
OptionsTPdfDocumentDiffOptions. Campos RenderWidth, RenderHeight, ColorTolerance, CompareText, ComparePageGeometry y MaxPages, con una función de clase Default
ReportTPdfDocumentDiffReport. Campos Equivalent, Truncated, LeftPageCount, RightPageCount, ComparedPageCount, DifferentPageCount, PixelDifferenceCount y Differences; cada TPdfPageDifference lleva PageIndex, TextDifferent, GeometryDifferent, PixelDifferenceCount y PixelBounds
ResultBoolean. True cuando los documentos son equivalentes bajo las opciones seleccionadas

Descripción

La comparación usa la extracción de texto y el renderizado de PDFium en lugar de interpretar flujos de contenido en paralelo

La geometría incluye las dimensiones de la página y la rotación; la comparación visual aplica la tolerancia de color de quien llama por canal e informa los límites de los píxeles modificados

MaxPages acota el trabajo para documentos que no son de confianza o muy grandes, y Truncated informa cuándo la comparación se detuvo en ese límite

La página actual de ambos documentos se restaura antes de que el método devuelva

Comparación con alineación y detalle

Las opciones Default anteriores comparan las páginas según su posición; establezca AlignPages en True para detectar inserciones, eliminaciones y movimientos exactos de páginas

La alineación combina el texto extraído, la geometría de la página y una huella de renderizado de 64-by-64; el emparejamiento de duplicados es determinista, y una página modificada y movida a la vez puede aparecer como una modificación

PagePairs y cada diferencia exponen LeftPageIndex y RightPageIndex con índices desde cero, y -1 cuando falta una página; Kind puede ser dpkMatched, dpkModified, dpkMoved, dpkInserted o dpkDeleted

TextDiffMode selecciona dtmNone, dtmCharacters o dtmWords; TextChanges informa LeftStart, LeftLength, RightStart y RightLength en UTF-16 sin dividir pares sustitutos

CollectPixelRegions agrega PixelRegions de mosaicos conectados con límites Right y Bottom exclusivos, y conserva la unión PixelBounds de la API anterior

MaxAlignmentCells, MaxTextCharacters, MaxTextDiffCells, MaxTextTokens, PixelRegionTileSize, MaxPixelRegions y MaxDetailItems limitan el trabajo de detalle; DetailTruncated indica que el detalle está incompleto, independientemente de Truncated por el límite de páginas

Report incluye InsertedPageCount, DeletedPageCount y MovedPageCount; cada diferencia también tiene su propio DetailTruncated

RenderDiffOverlay exporta una superposición visual que queda a cargo de quien llama; FPdfDiff expone los algoritmos auxiliares con límites de trabajo

Ver también

RenderPage, Text, ImportImposed