SetStructElemActualText
带标签 PDF & 辅助功能
描述
在标签堆栈中当前正在构建的结构元素上设置 /ActualText 条目,ActualText 提供该元素表示的精确 Unicode 文本,覆盖阅读器软件从 PDF 内容流中提取的任何文本
当内容流中渲染的字形未直接映射到预期阅读顺序字符时,请使用此函数 — 例如,应读取为双字符序列 ff、fi 或 fl 的连字字形(ff、fi、fl),若没有 ActualText,文本提取工具和屏幕阅读器可能对此类字形产生错误输出
语法
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);
参数
| ActualText | 与当前结构元素关联的 Unicode 文本字符串 传入空字符串可清除先前设置的值 |
|---|
返回值
成功返回 1;如果当前没有打开的结构元素或没有选中文档,则返回 0
备注
当目标元素位于标签栈顶部时,请在 BeginTag 或 BeginTagEx 之后立即调用此函数
ActualText 和 AltText 用途不同。AltText(通过 BeginTag 的 AltText 参数设置)是整个元素的替代表示,用于视觉内容无法渲染时供辅助技术使用。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