Nativer Linux-Vertragsvergleich

hpdf_document_compare_json_v1 leiht sich zwei geladene Document-Handles und führt nativen semantischen Vertragsvergleich oder allgemeinen Dokumentenvergleich aus, mit vorbereitetem Output über Callbacks

{"schemaVersion":1,"type":"compare.contract","format":"html",
 "title":"Contract review","options":{"granularity":"word",
 "ignoreRepeatedHeadersFooters":true,"maxAlignmentCells":2000000},
 "limits":{"memoryBytes":268435456,"resultBytes":4194304,"outputBytes":8388608}}

Semantische Vertragsberichte

Der native Adapter nutzt denselben portablen Absatzausrichtungs- und Differenzalgorithmus wie die Windows-Contract-API, einschließlich Wort- oder Satzänderungen, seitenübergreifender Verschiebungen, wiederholter Rand-Ausschlüsse, Boilerplate-Filter und Seitenfortsetzungen

Vertragsberichte enthalten comparisonComplete, identical, differenceCount, Seiten- und Absatzzahlen, Ausschlüsse, Arbeits- und Ausrichtungszähler sowie Text, Kontext und Positionen jeder Änderung

Jede Position enthält eine nullbasierte Seite und einen Absatz, ein einsbasiertes Zeichenoffset, eine Zeichenzahl und PDF-User-Space-Rechtecke, die sich schneidende semantische Zeilen abdecken; Rechtecke repräsentieren Zeilengeometrie

Native Glyph-Extraktion bewahrt verschachtelte Form-Ressourcen und Matrizen, geerbte Seitengrenzen und Extraktionsberechtigungen für Klartext- und authentifizierte AES-R5/R6-Eingaben; Seiten ohne extrahierbaren Text melden einen Extraktionsfehler und erfordern OCR oder explizites Entfernen leerer Seiten

Optionen und Limits

options akzeptiert granularity (word oder sentence), ignoreCase, ignoreRepeatedHeadersFooters, normalizeMarginDigits, joinPageContinuations, headerMarginPoints, footerMarginPoints, paragraphGapFactor, minimumParagraphSimilarity, minimumRepeatedPages und excludedLineTexts

Explizite positive Integer-Limits umfassen maxPages, maxParagraphs, maxSemanticLines, maxCharacters, maxTokens, maxDifferences, maxAlignmentCells und maxWorkUnits; Operations-Speicher- und Ergebnisbudgets deckeln diese Limits vor der Ausführung

compare akzeptiert Page-Count-, Page-Text-, Object-Count-, Rendered-Image-, Structural- und Full-Modi mit JSON-Output; verfügbare Modi finden sich über comparisonModes, Contract-Formate über contractFormats

format:json schreibt das Ergebnis-JSON in den optionalen Binary-Callback sowie in den erforderlichen Result-Callback; format:html erfordert einen Binary-Callback und schreibt eine eigenständige UTF-8-Review mit escaptem Titel und Contract-Formulierungen

format:pdf erfordert Binary-Output-Callbacks und erzeugt eine echte annotierte Review-Kopie von side:before oder side:after, mit Default after; options.maxHighlights begrenzt hervorgehobene semantische Zeilen

Lebensdauer und Veröffentlichung

Halte beide Handles während des Aufrufs am Leben; der Vergleich desselben Handles wird unterstützt, und gleichzeitige Vergleiche in umgekehrter Reihenfolge akquirieren Locks in stabiler Ordnung

Alle Callbacks laufen synchron im aufrufenden Thread; Ressourcen-Limits werden temporär auf jedes geladene Dokument angewendet und danach wiederhergestellt, einschließlich Fehler- und Abbruchpfaden

Der Aufruf akzeptiert keine Input-Callback- oder Dateipfad-Member und bewahrt beide Quelldokumente samt Revisionen; Binary- und JSON-Output werden vor Beginn der Veröffentlichung vorbereitet und begrenzt

Pascal-Interface

HPDFCompareHeadlessContracts akzeptiert zwei THPDFHeadlessDocument-Objekte mit bestehenden THPDFContractCompareOptions und liefert THPDFContractCompareReport

HPDFHeadlessContractSource legt den nativen Adapter offen; HPDFCompareContractSources in HPDFContractCompareCore akzeptiert eigene begrenzte Page-Count-, Semantic-Page- und Visible-Box-Callbacks für den portablen Core

HPDFContractCompareCore besitzt den gemeinsamen Algorithmus, Report-Typen und den HTML-Renderer ohne VCL- oder LCL-Abhängigkeiten; das bestehende HPDFContractCompare-Windows-Interface bewahrt seine Typen, Konstanten und Loaded-Document-Einstiegspunkte über Aliases und Adapter

THPDFHeadlessDocument.ExtractPageGlyphs und AnalyzePageSemanticText legen positionierte Glyphen und semantisches Layout über denselben Nested-Content-Walker offen, den ExtractPageText verwendet

Die native ABI-Abnahme verifiziert echte Klartext-, AES-R5/R6- und Nested-Form-Vergleiche, Rollback, Budgets und Lock-Ordnung; unabhängige pypdf- und MuPDF-Reader verifizieren vollständige Differenzen, exakte Kontexte, Offsets und Quell-Glyphen-Geometrie

Natives Linux C ABI · Vertragsvergleich · Verbleibender Auslieferungsplan