PDFium Delphi Component Docs

Methode CompareWith

Komponente: TPdf  ·  Unit: PDFium
Vergleicht zwei aktive Dokumente und liefert begrenzte semantische, geometrische und visuelle Belege

Syntax

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

OtherTPdf. Das andere aktive Dokument
OptionsTPdfDocumentDiffOptions. Felder RenderWidth, RenderHeight, ColorTolerance, CompareText, ComparePageGeometry und MaxPages, mit einer Default-Klassenfunktion
ReportTPdfDocumentDiffReport. Felder Equivalent, Truncated, LeftPageCount, RightPageCount, ComparedPageCount, DifferentPageCount, PixelDifferenceCount und Differences; jeder TPdfPageDifference trägt PageIndex, TextDifferent, GeometryDifferent, PixelDifferenceCount und PixelBounds
ResultBoolean. True, wenn die Dokumente unter den gewählten Optionen äquivalent sind

Beschreibung

Der Vergleich nutzt PDFium-Textextraktion und -Rendering, statt Content-Streams parallel zu interpretieren

Die Geometrie umfasst Seitenmaße und Drehung; der visuelle Vergleich wendet die Farbtoleranz des Aufrufers pro Kanal an und meldet die Grenzen der geänderten Pixel

MaxPages begrenzt die Arbeit bei nicht vertrauenswürdigen oder sehr großen Dokumenten, und Truncated meldet, wenn der Vergleich an dieser Grenze stoppte

Die aktuelle Seite beider Dokumente wird vor der Rückkehr der Methode wiederhergestellt

Ausgerichteter und detaillierter Vergleich

Bisherige Default-Optionen vergleichen gleiche Seitenpositionen; AlignPages True erkennt Einfügungen, Löschungen und exakte Verschiebungen

Ausrichtung nutzt extrahierten Text, Seitengeometrie und einen 64-mal-64-Renderfingerprint; doppelte Seiten werden deterministisch gepaart; gleichzeitig verschobene und geänderte Seiten können als Änderungen erscheinen

PagePairs und jede Differenz liefern nullbasierte LeftPageIndex und RightPageIndex, -1 für fehlende Seiten; Kind ist dpkMatched, dpkModified, dpkMoved, dpkInserted oder dpkDeleted

TextDiffMode wählt dtmNone, dtmCharacters oder dtmWords; TextChanges liefert UTF-16-LeftStart, LeftLength, RightStart und RightLength ohne Trennung von Surrogatpaaren

CollectPixelRegions ergänzt zusammenhängende Kachel-PixelRegions mit exklusiven Right- und Bottom-Grenzen, während die bisherige PixelBounds-Vereinigung erhalten bleibt

MaxAlignmentCells, MaxTextCharacters, MaxTextDiffCells, MaxTextTokens, PixelRegionTileSize, MaxPixelRegions und MaxDetailItems begrenzen Detailarbeit; DetailTruncated meldet unvollständige Details unabhängig von seitenbegrenztem Truncated

Report enthält InsertedPageCount, DeletedPageCount und MovedPageCount; jede Differenz hat zudem eigenes DetailTruncated

RenderDiffOverlay exportiert ein dem Aufrufer gehörendes Overlay; FPdfDiff stellt die begrenzten Helperalgorithmen bereit

Siehe auch

RenderPage, Text, ImportImposed