Сравнение договоров в нативном Linux

hpdf_document_compare_json_v1 берёт два дескриптора загруженных документов и запускает нативное семантическое сравнение договоров или общее сравнение документов с подготовленным выводом через колбэки

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

Семантические отчёты по договорам

Нативный адаптер использует тот же переносимый алгоритм выравнивания абзацев и поиска различий, что и контрактный API Windows, включая изменения слов или предложений, перемещения между страницами, исключение повторяющихся полей, фильтры шаблонного текста и продолжения страниц

Отчёты по договорам включают comparisonComplete, identical, differenceCount, счётчики страниц и абзацев, исключения, счётчики работы и выравнивания, а для каждого изменения — текст, контекст и позиции

Каждая позиция содержит страницу и абзац с нуля, смещение символа с единицы, число символов и прямоугольники пользовательского пространства PDF, покрывающие пересекающиеся семантические строки; прямоугольники представляют геометрию строк

Нативное извлечение глифов сохраняет вложенные ресурсы Form и матрицы, унаследованные границы страниц и права извлечения для plain-text и аутентифицированных входов AES R5/R6; страницы без извлекаемого текста сообщают об ошибке извлечения и требуют OCR или явного удаления пустых страниц

Опции и лимиты

options принимает granularity (word или sentence), ignoreCase, ignoreRepeatedHeadersFooters, normalizeMarginDigits, joinPageContinuations, headerMarginPoints, footerMarginPoints, paragraphGapFactor, minimumParagraphSimilarity, minimumRepeatedPages и excludedLineTexts

Явные положительные целые лимиты включают maxPages, maxParagraphs, maxSemanticLines, maxCharacters, maxTokens, maxDifferences, maxAlignmentCells и maxWorkUnits; бюджеты памяти и результата операции ограничивают эти лимиты до выполнения

compare принимает режимы по числу страниц, тексту страниц, числу объектов, отрисованным изображениям, структуре и полный, с выводом JSON; доступные режимы узнавайте через comparisonModes, а контрактные форматы — через contractFormats

format:json пишет результирующий JSON и в необязательный бинарный колбэк, и в обязательный result-колбэк; format:html требует бинарный колбэк и пишет автономный UTF-8-обзор с экранированными заголовком и формулировками договора

format:pdf требует бинарных output-колбэков и создаёт настоящую аннотированную копию для рецензии с side:before или side:after, по умолчанию after; options.maxHighlights ограничивает подсвеченные семантические строки

Время жизни и публикация

Держите оба дескриптора живыми на время вызова; сравнение дескриптора с самим собой поддерживается, а конкурентные сравнения в обратном порядке захватывают блокировки в стабильном порядке

Все колбэки выполняются синхронно на вызывающем потоке; ресурсные лимиты временно применяются к каждому загруженному документу и восстанавливаются потом, включая пути сбоев и отмены

Вызов не принимает input-колбэк или члены путей к файлам и сохраняет оба исходных документа и их ревизии; бинарный и JSON-вывод подготавливаются и ограничиваются до начала публикации

Интерфейс Pascal

HPDFCompareHeadlessContracts принимает два объекта THPDFHeadlessDocument с существующими THPDFContractCompareOptions и возвращает THPDFContractCompareReport

HPDFHeadlessContractSource открывает нативный адаптер; HPDFCompareContractSources в HPDFContractCompareCore принимает собственные ограниченные колбэки числа страниц, семантических страниц и видимого бокса для переносимого ядра

HPDFContractCompareCore владеет общим алгоритмом, типами отчётов и HTML-рендерером без зависимостей от VCL или LCL; существующий Windows-интерфейс HPDFContractCompare сохраняет свои типы, константы и точки входа загруженных документов через алиасы и адаптеры

THPDFHeadlessDocument.ExtractPageGlyphs и AnalyzePageSemanticText открывают позиционированные глифы и семантическую раскладку через тот же обходчик вложенного содержимого, что и ExtractPageText

Приёмка нативного ABI проверяет фактические сравнения plain-text, AES R5/R6 и вложенных Form, rollback, бюджеты и порядок блокировок; независимые читалки pypdf и MuPDF проверяют полные различия, точные контексты, смещения и геометрию исходных глифов

Нативный C ABI в Linux · Сравнение договоров · План завершения оставшихся возможностей