Метод THotPDF.ValidatePDFUA2Structure
Выполняет ограниченную валидацию структуры PDF/UA-2 над графом объектов производителя или загруженным графом и возвращает стабильную структурированную диагностику, не изменяя документ
Объявление
function ValidatePDFUA2Structure(
const Options: THPDFUA2ValidationOptions;
out Issues: THPDFUA2ValidationIssues): boolean; overload;
function ValidatePDFUA2Structure(
const Options: THPDFUA2ValidationOptions;
out Findings: THPDFComplianceFindings): boolean; overload;
Модуль
HPDFDoc
Опции валидации
Используйте THPDFUA2ValidationOptions.Default для строгой валидации при генерации или меняйте отдельные семантические политики для приёмочной диагностики
| Поле | Назначение |
|---|---|
HeadingPolicy | Игнорирует, диагностирует или отклоняет пропущенные уровни заголовков |
AllowDocumentFragmentHeadingStarts | Сбрасывает контекст заголовков внутри DocumentFragment |
CheckDocumentSemantics | Проверяет язык Catalog, метаданные, отображаемый заголовок, optional content и встроенные файлы |
CheckHumanReadableStrings | Отклоняет Unicode-символы private-use в человекочитаемых строках |
CheckAnnotationSemantics | Проверяет tab order страниц, принадлежность аннотаций, роли, флаги, описания и потоки внешнего вида |
CheckFormSemantics | Проверяет поля AcroForm, виджеты, метки, действия, опции и rich-значения |
CheckNavigationSemantics | Проверяет structure destinations, outlines и вложенные number tree меток страниц |
RequireListLabels | Требует по одному Lbl для каждого нумерованного элемента списка |
RequireExplicitTableHeaderAssociations | Сообщает о ячейках данных, зависящих только от вывода scope |
CheckListSemantics | Проверяет нумерацию, цепочки продолжения, названия, метки, тела и прямое размещение реального содержимого |
CheckTableSemantics | Проверяет ограниченную геометрию сетки, группы строк, spans, scopes и локальные для таблицы связи заголовков |
CheckRubyWarichuSequences | Проверяет точные последовательности прямых потомков, требуемые для Ruby и Warichu |
CheckPronunciationHints | Проверяет типы записей произношения и косвенно встроенные словари PLS |
RequireStructureAssociatedFiles | Требует, чтобы каждый связанный файл каталога был достижим из структуры |
RequireFormulaTextAlternative | Требует Alt, ActualText или связанный MathML для формул |
MaxObjects | Ограничивает сканирование косвенных объектов, по умолчанию 1,000,000 объектов |
MaxIssues | Ограничивает объём сохраняемой диагностики, по умолчанию 256 записей |
Возвращаемое значение
Возвращает True, только когда не остаётся диагностики uisError
Диагностика
THPDFUA2IssueSeverity различает предупреждения и ошибки, а каждая запись THPDFUA2ValidationIssue несёт стабильный namespaced-код, применимый пункт стандарта, путь к объекту, номер объекта, нумеруемый с нуля индекс страницы, если он известен, и человекочитаемое сообщение в массиве THPDFUA2ValidationIssues
- Валидация никогда не создаёт отсутствующие
StructTreeRootили словарь пространств имён - Карты ролей с учётом пространств имён разрешаются транзитивно с обнаружением циклов и глубины
- Метаданные документа, человекочитаемые строки, optional content, элементы структуры, обратные ссылки на родителей, атрибуты, аннотации, формы, навигация, связанные файлы, заголовки, списки, таблицы, Ruby, Warichu, подсказки произношения, формулы и MathML проверяются за один ограниченный проход
- Принадлежность загруженных аннотаций разрешается по физическому ParentTree и поддерживает скалярные или массивные записи
Kбез опоры на состояние производителя - Локальная навигация требует structure destinations, применяет
SDпрежде совместимого запасногоDи проверяет вложенные number tree меток страниц - Свойства XMP разрешаются по URI пространства имён, поэтому валидные альтернативные префиксы остаются совместимыми
- Диагностика таблиц различает невалидные spans, пересечения ячеек, нерегулярные строки и группы строк, межтабличные ID, дублирующиеся или циклические ссылки на заголовки и отсутствующие алгоритмические связи
- Диагностика списков различает невалидную нумерацию, не обёрнутое содержимое, структуру метки и тела, упорядоченные ссылки на продолжение того же уровня и циклы продолжения
- Развёрнутая геометрия таблиц делит лимит
MaxObjectsи срабатывает по принципу fail-closed сua2.table.limit.cells ua2.limit.objectsсрабатывает по принципу fail-closed до сканирования чрезмерно большого графа
Машиночитаемые findings
Перегрузка с THPDFComplianceFindings отображает тот же ограниченный проход валидации в общую модель соответствия, не меняя порядок валидации и не изменяя граф
Каждая finding указывает PDF/UA-2, критичность, ID правила, пункт стандарта, путь, номер объекта, индекс страницы, сообщение и состояние ремонта crsNotAttempted