Comparação de contratos nativa no Linux

hpdf_document_compare_json_v1 empresta dois handles de documentos carregados e executa a comparação semântica nativa de contratos ou a comparação geral de documentos, com saída preparada através de 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}}

Relatórios semânticos de contratos

O adapter nativo usa o mesmo algoritmo portátil de alinhamento e diferenças de parágrafos da API de contratos do Windows, incluindo mudanças de palavras ou frases, movimentações entre páginas, exclusão de margens repetidas, filters de boilerplate e continuações de páginas

Relatórios de contratos incluem comparisonComplete, identical, differenceCount, contagens de páginas e parágrafos, exclusões, contadores de trabalho e alinhamento, mais o texto, contexto e localizações de cada mudança

Cada localização contém uma página e parágrafo com base zero, um offset de caractere com base um, contagem de caracteres e retângulos em user space PDF cobrindo as linhas semânticas interseccionadas; retângulos representam a geometria de linhas

A extração nativa de glyphs preserva recursos e matrizes de Forms aninhados, fronteiras herdadas de páginas e permissões de extração para entradas plaintext e AES R5/R6 autenticadas; páginas sem texto extraível reportam uma falha de extração e exigem OCR ou remoção explícita de páginas em branco

Opções e limites

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

Limites explícitos de inteiros positivos incluem maxPages, maxParagraphs, maxSemanticLines, maxCharacters, maxTokens, maxDifferences, maxAlignmentCells e maxWorkUnits; a memória da operação e os orçamentos de resultados limitam esses valores antes da execução

compare aceita os modos page-count, page-text, object-count, rendered-image, structural e full com saída JSON; descubra os modos disponíveis por comparisonModes e os formatos de contratos por contractFormats

format:json grava o JSON de resultado no callback binário opcional, além do callback obrigatório de resultado; format:html exige um callback binário e grava uma revisão standalone UTF-8 com título e texto do contrato escapados

format:pdf exige callbacks binários de saída e cria uma cópia de revisão anotada real de side:before ou side:after, com default after; options.maxHighlights limita as linhas semânticas destacadas

Tempo de vida e publicação

Mantenha ambos os handles vivos durante a chamada; comparação de mesmo handle é suportada, e comparações concorrentes em ordem oposta adquirem locks numa ordem estável

Todos os callbacks rodam sincronamente na thread chamadora; os limites de recursos são aplicados temporariamente a cada documento carregado e restaurados depois, incluindo os caminhos de falha e cancelamento

A chamada não aceita callback de entrada nem membros de caminhos de arquivos, e preserva ambos os documentos de origem e as revisões deles; saída binária e JSON são preparadas e delimitadas antes de a publicação começar

Interface Pascal

HPDFCompareHeadlessContracts aceita dois objetos THPDFHeadlessDocument com as THPDFContractCompareOptions existentes e retorna THPDFContractCompareReport

HPDFHeadlessContractSource expõe o adapter nativo; HPDFCompareContractSources em HPDFContractCompareCore aceita callbacks customizados delimitados de page-count, semantic-page e visible-box para o núcleo portátil

HPDFContractCompareCore é dono do algoritmo compartilhado, dos tipos de relatórios e do renderer HTML, sem dependências de VCL nem LCL; a interface Windows existente HPDFContractCompare preserva seus tipos, constantes e entry points de documentos carregados através de aliases e adapters

THPDFHeadlessDocument.ExtractPageGlyphs e AnalyzePageSemanticText expõem glyphs posicionados e layout semântico pelo mesmo walker de conteúdo aninhado usado por ExtractPageText

A aceitação da ABI nativa verifica comparações reais de plaintext, AES R5/R6 e Forms aninhados, rollback, orçamentos e ordenação de locks; readers independentes pypdf e MuPDF verificam diferenças completas, contextos exatos, offsets e geometria de glyphs da origem

C ABI nativa do Linux · Comparação de contratos · Plano de entrega restante