SetStructElemActualText

Tagged PDF & Accessibility

Description

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

Используйте эту функцию, когда глифы, отрисованные в потоке содержимого, не сопоставляются напрямую с соответствующими символами порядка чтения — например, глиф лигатуры (ff, fi, fl), который должен читать как двухсимвольная последовательность ff, fi или fl; без ActualText инструменты извлечения текста и программы чтения с экрана могут выдать неверный результат для таких глифов

Syntax

Delphi

Function TPDFlib.SetStructElemActualText(Const ActualText: WideString): Integer;

ActiveX

Function PDFlib::SetStructElemActualText(ActualText As String) As Long

DLL

int DLSetStructElemActualText(int InstanceID, const wchar_t * ActualText);

Parameters

ActualTextСтрока текста Unicode для связи с текущим структурным элементом; передайте пустую строку, чтобы очистить ранее установленное значение

Return value

Returns 1 on success, 0 if no structure element is currently open or no document is selected.

Remarks

Вызывайте эту функцию сразу после вызова 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 является стандартным механизмом для удовлетворения этого требования для последовательностей глифов, непосредственное извлечение которых было бы двусмысленным или неверным

Example

// 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;

See also

BeginTag, BeginTagEx, SetStructElemID, AddTagAttribute, GetPDFUADiagnostics