SetStructElemActualTextA
標籤式 PDF 與無障礙
描述
結尾的 A 表示 ANSI(char)DLL 進入點,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);
參數
| 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