Comparaison de contrats Linux native

hpdf_document_compare_json_v1 emprunte deux handles de documents chargés et exécute une comparaison sémantique de contrats native ou une comparaison générale de documents, avec sortie préparée via 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}}

Rapports de contrats sémantiques

L'adapteur natif utilise le même algorithme portable d'alignement de paragraphes et de différences que l'API de contrats Windows, y compris les changements de mots ou de phrases, les déplacements entre pages, l'exclusion des marges répétées, les filtres de boilerplate et les continuations de pages

Les rapports de contrats incluent comparisonComplete, identical, differenceCount, les comptes de pages et de paragraphes, les exclusions, les compteurs de travail et d'alignement, plus le texte, le contexte et les emplacements de chaque changement

Chaque emplacement contient une page et un paragraphe à base zéro, un offset de caractère à base un, un compte de caractères et des rectangles en espace utilisateur PDF couvrant les lignes sémantiques intersectées ; les rectangles représentent la géométrie des lignes

L'extraction native de glyphes préserve les ressources Form imbriquées et les matrices, les frontières de pages héritées et les permissions d'extraction pour les entrées en clair et AES R5/R6 authentifiées ; les pages sans texte extractible rapportent un échec d'extraction et exigent de l'OCR ou une suppression explicite de pages blanches

Options et limites

options accepte granularity (word ou sentence), ignoreCase, ignoreRepeatedHeadersFooters, normalizeMarginDigits, joinPageContinuations, headerMarginPoints, footerMarginPoints, paragraphGapFactor, minimumParagraphSimilarity, minimumRepeatedPages et excludedLineTexts

Les limites entières positives explicites incluent maxPages, maxParagraphs, maxSemanticLines, maxCharacters, maxTokens, maxDifferences, maxAlignmentCells et maxWorkUnits ; les budgets de mémoire d'opération et de résultat plafonnent ces limites avant l'exécution

compare accepte les modes page-count, page-text, object-count, rendered-image, structural et full avec sortie JSON ; découvrez les modes disponibles via comparisonModes et les formats de contrats via contractFormats

format:json écrit le JSON de résultat vers le callback binaire optionnel ainsi que vers le callback de résultat requis ; format:html exige un callback binaire et écrit une revue UTF-8 autonome avec titre et formulation de contrat échappés

format:pdf exige des callbacks de sortie binaires et crée une véritable copie de revue annotée de side:before ou side:after, par défaut after ; options.maxHighlights limite les lignes sémantiques surlignées

Durée de vie et publication

Gardez les deux handles vivants pendant l'appel ; la comparaison de même handle est prise en charge et les comparaisons concurrentes en ordre inverse acquièrent les verrous dans un ordre stable

Tous les callbacks s'exécutent de manière synchrone sur le thread appelant ; les limites de ressources sont temporairement appliquées à chaque document chargé puis restaurées, y compris sur les chemins d'échec et d'annulation

L'appel n'accepte aucun membre de callback d'entrée ni de chemin de fichier, et préserve les deux documents sources et leurs révisions ; les sorties binaires et JSON sont préparées et bornées avant que la publication ne commence

Interface Pascal

HPDFCompareHeadlessContracts accepte deux objets THPDFHeadlessDocument avec des THPDFContractCompareOptions existants et retourne un THPDFContractCompareReport

HPDFHeadlessContractSource expose l'adapteur natif ; HPDFCompareContractSources dans HPDFContractCompareCore accepte des callbacks personnalisés bornés de compte de pages, de pages sémantiques et de boîtes visibles pour le cœur portable

HPDFContractCompareCore possède l'algorithme partagé, les types de rapports et le renderer HTML sans dépendances VCL ni LCL ; l'interface Windows HPDFContractCompare existante préserve ses types, constantes et points d'entrée de documents chargés via des alias et des adapteurs

THPDFHeadlessDocument.ExtractPageGlyphs et AnalyzePageSemanticText exposent les glyphes positionnés et la mise en page sémantique via le même walker de contenu imbriqué utilisé par ExtractPageText

L'acceptance ABI native vérifie de véritables comparaisons en clair, AES R5/R6 et Form imbriqués, le rollback, les budgets et l'ordre des verrous ; des lecteurs pypdf et MuPDF indépendants vérifient les différences complètes, les contextes exacts, les offsets et la géométrie des glyphes sources

ABI C Linux native · Comparaison de contrats · Plan de livraison restant