property IsTagged: Boolean; // read only
IsTagged возвращает True, когда каталог документа ссылается на
/StructTreeRoot — корень логического дерева структуры PDF
(раздел 14.7 спецификации PDF 1.7). Tagged PDF кодируют порядок чтения документа,
уровни заголовков, структуру таблиц, списки, alt-text на изображениях и другую
семантическую разметку, на которую опираются screen readers, движки reflow и
content extractors. Для соответствия PDF/UA-1 и PDF/A-2a/3a нужен tagged PDF
Свойство равно False, когда Active равно False,
когда не объявлено дерево структуры или когда дерево присутствует, но пусто. Многие PDF
в реальном мире не tagged — особенно scanned documents, output от print-driver
и exports from tools до 2010 года. Поддержка tagged PDF в authoring tools улучшается, но
все еще неравномерна
IsTagged — это дешевый header check, подходящий для routing decisions: пропускайте
извлечение дерева структуры для untagged files (оно просто вернет пустые массивы) или
показывайте оператору предупреждение о доступности. Подробное дерево доступно через
StructureElements, которое материализует дерево в плоский массив записей
TPdfStructureElement с уровнем, индексом родителя, именем типа и ролью
Language (/Lang), чтобы выполнить
две минимально необходимые проверки PDF/UA перед валидацией полным инструментом
соответствия/StructTreeRoot
if not Pdf1.IsTagged then
Log.Add('Warning: PDF is not tagged. Screen-reader output will be unreliable.');
if Pdf1.IsTagged and (Pdf1.Language = '') then
Log.Add('Tagged PDF without /Lang - fails PDF/UA.');