AddTagAttribute
Структурированный PDF, Доступность
Описание
Добавляет именованный атрибут элементу структуры, который сейчас строится на стеке тегов. При сохранении документа атрибут записывается как PDF-словарь /A (или массив словарей). Вызывайте после BeginTag или BeginTagEx и до EndTag
Синтаксис
Delphi
Function TPDFlib.AddTagAttribute(Const Owner, Name, Value: WideString): Integer;
ActiveX
Function PDFlib::AddTagAttribute(Owner As String, Name As String, Value As String) As Long
DLL
int DLAddTagAttribute(int InstanceID, const wchar_t * Owner, const wchar_t * Name, const wchar_t * Value);
Параметры
| Owner | Имя владельца атрибута по ISO 32000-1 Table 348 (например Layout, Table, List, PrintField); становится ключом /O в словаре атрибутов |
|---|---|
| Name | Имя атрибута для указанного владельца (например BBox для Layout, Scope для Table); пустым быть не может |
| Value | Строковое значение атрибута. Одиночное число записывается как число PDF, а значения только из чисел через пробел (например "0 0 200 100") — как PDF-массив вещественных чисел. На любой системе числа используют точку в качестве десятичного разделителя; число, записанное с системным десятичным разделителем, тоже принимается. Любое другое значение записывается как PDF-объект name (без ведущего /); пустым быть не может |
Возвращаемое значение
Возвращает 1 при успехе. Возвращает 0, если документ не открыт, структурный тег не открыт или Owner / Name пусты
Примечания
Повторные вызовы AddTagAttribute для одного открытого тега накапливаются. Если атрибуты принадлежат одному владельцу, библиотека пишет один словарь /A; при нескольких владельцах атрибуты группируются по владельцу и записываются массивом словарей
Для распространённых атрибутов вместо прямого вызова AddTagAttribute удобнее обёртки SetStructElemScope и SetStructElemBBox
Атрибуты сбрасываются при открытии нового тега и не наследуются дочерними элементами
Пример
// Mark a table header cell with column scope
PDFlib.BeginTag('TH', '', '', '');
PDFlib.AddTagAttribute('Table', 'Scope', 'Column');
// ... draw cell content
PDFlib.EndTag;
// Mark a figure with a bounding box
PDFlib.BeginTag('Figure', 'Company logo', '', '');
PDFlib.AddTagAttribute('Layout', 'BBox', '72 600 200 700');
PDFlib.EndTag;См. также
BeginTag, BeginTagEx, EndTag, SetStructElemScope, SetStructElemBBox