SetStructElemActualTextA

Структурированный PDF и доступность

Описание

Завершающая A обозначает точку входа DLL типа ANSI (char); интерфейс ActiveX/COM предоставляет только форму Unicode. Поведение идентично SetStructElemActualText, а строковые аргументы интерпретируются с использованием текущей кодовой страницы SetAnsiMode

Записывает /ActualText в элемент структуры, который сейчас строится на стеке тегов. ActualText задаёт точный Unicode-текст элемента, перекрывая любой текст, извлечённый из потока содержимого PDF программой чтения

Use this function when the glyphs rendered in the content stream do not directly map to their intended reading-order characters — for example, a ligature glyph (ff, fi, fl) that should read as the two-character sequence ff, fi, or fl. Without ActualText, text-extraction tools and screen readers may produce incorrect output for such glyphs.

Синтаксис

Delphi

Function DLSetStructElemActualTextA(InstanceID: Integer; ActualText: PAnsiChar): Integer;

DLL

int DLSetStructElemActualTextA(int InstanceID, const char * ActualText);

Параметры

ActualTextUnicode-строка, связываемая с текущим элементом структуры; пустая строка сбрасывает ранее заданное значение

Возвращаемое значение

Возвращает 1 при успехе, 0 если открытый структурный элемент отсутствует или документ не выбран.

Примечания

Вызывайте сразу после BeginTag или BeginTagEx, пока целевой элемент на вершине стека тегов

ActualText и AltText решают разные задачи. AltText (параметр AltText функции BeginTag) — альтернативное представление всего элемента для ассистивных технологий, когда визуальное содержимое не может быть отрисовано. ActualText дополняет извлечение текста из потока содержимого: он заменяет извлечённую последовательность символов элемента, но не запрещает отрисовку. Экранные дикторы, поддерживающие оба механизма, при наличии ActualText обычно читают вслух именно его

ISO 32000-1 §14.9.4 определяет ActualText как текстовую строку PDF в словаре структурного элемента. PDF/UA-1 (ISO 14289-1 §7.1) требует, чтобы текстовое содержимое извлекалось и было корректным; ActualText — стандартный механизм выполнения этого требования для последовательностей глифов, прямое извлечение которых было бы неоднозначным или неверным.

Пример

// Tag a ligature glyph so that text extraction yields "fi"
PDFlib.BeginTag('Span', '', '');
PDFlib.SetStructElemActualText('fi');
PDFlib.TextOut(x, y, #$FB01);   // U+FB01 LATIN SMALL LIGATURE FI
PDFlib.EndTag;

См. также

BeginTag, BeginTagEx, SetStructElemID, AddTagAttribute, GetPDFUADiagnostics