Comparação nativa de contratos em Linux

hpdf_document_compare_json_v1 toma emprestados dois handles de documentos carregados e corre comparação nativa semântica de contratos ou 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 adaptador nativo usa o mesmo algoritmo portátil de alinhamento de parágrafos e de diferenças da API de contratos de Windows, incluindo alterações de palavras ou frases, movimentos entre páginas, exclusão de margens repetidas, filtros de boilerplate e continuações de páginas

Os relatórios de contratos incluem comparisonComplete, identical, differenceCount, contagens de páginas e de parágrafos, exclusões, contadores de trabalho e de alinhamentos, mais o texto, o contexto e as localizações de cada alteração

Cada localização contém uma página e um parágrafo com base zero, um offset de carateres com base um, contagem de carateres e retângulos de espaço de utilizador PDF cobrindo as linhas semânticas que se intersetam; os retângulos representam geometria de linhas

A extração nativa de glyphs preserva recursos e matrizes aninhadas de Forms, fronteiras herdadas de páginas e permissões de extração para entradas de texto simples 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; os orçamentos de memória e de resultados da operação limitam estes tetos antes da execução

compare aceita modos de contagem de páginas, texto de páginas, contagem de objetos, imagem renderizada, estrutural e completo com saída JSON; descubra os modos disponíveis através de comparisonModes e os formatos de contratos através de contractFormats

format:json escreve o JSON de resultados tanto no callback binário opcional como no callback obrigatório de resultados; format:html exige um callback binário e escreve uma revisão autónoma UTF-8 com título e redação de contratos com escape

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 bloqueios numa ordem estável

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

A chamada não aceita callback de entrada nem membros de caminhos de ficheiros, e preserva ambos os documentos fonte e as revisões deles; a saída binária e JSON é preparada e delimitada antes de a publicação começar

Interface Pascal

HPDFCompareHeadlessContracts aceita dois objetos THPDFHeadlessDocument com THPDFContractCompareOptions existentes e devolve THPDFContractCompareReport

HPDFHeadlessContractSource expõe o adaptador nativo; HPDFCompareContractSources em HPDFContractCompareCore aceita callbacks personalizados delimitados de contagem de páginas, páginas semânticas e caixas visíveis para o núcleo portátil

HPDFContractCompareCore é dono do algoritmo partilhado, dos tipos de relatórios e do renderer HTML sem dependências de VCL ou LCL; a interface existente HPDFContractCompare de Windows preserva os tipos, constantes e pontos de entrada de documentos carregados dela através de aliases e adaptadores

THPDFHeadlessDocument.ExtractPageGlyphs e AnalyzePageSemanticText expõem glyphs posicionados e layout semântico através do mesmo percorredor aninhado de conteúdo usado por ExtractPageText

A aceitação nativa da ABI verifica comparações reais de texto simples, AES R5/R6 e Forms aninhados, rollback, orçamentos e ordenação de bloqueios; leitores independentes de pypdf e MuPDF verificam diferenças completas, contextos exatos, offsets e geometria real de glyphs fonte

ABI C nativa de Linux · Comparação de contratos · Plano de entregas restantes