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