DAGetTextBlockCharUnicodeFlags
直接访问、文本、提取、诊断、Unicode
描述
返回 Direct Access 文本块中单个字符的 Unicode 映射与回退标志
语法
Delphi
Function TPDFlib.DAGetTextBlockCharUnicodeFlags(TextBlockListID, Index, CharIndex: Integer): Integer;参数
| TextBlockListID | 由 DAExtractPageTextBlocks 返回的句柄 |
|---|---|
| Index | 从 1 开始的文本块索引 |
| CharIndex | 块文本内从 1 开始的 UTF-16 代码单元位置 |
返回值
| -1 | 句柄、块索引或字符索引无效 |
|---|---|
| 0 或标志 | 没有适用的源字形映射,或结果包含一个或多个 Unicode 诊断标志 |
标志
PDF_TEXT_CHAR_UNICODE_EXPLICIT | 该字符由显式有效的 ToUnicode 映射产生 |
|---|---|
PDF_TEXT_CHAR_UNICODE_FALLBACK | 该字符由字体编码、字形、CID 或原始代码回退产生 |
PDF_TEXT_CHAR_UNICODE_MISSING_TOUNICODE | 字体没有 ToUnicode 条目 |
PDF_TEXT_CHAR_UNICODE_UNMAPPED | 有效的 ToUnicode CMap 中没有该源代码的映射 |
PDF_TEXT_CHAR_UNICODE_INVALID | ToUnicode CMap 不可用,或所选映射不是有效的 UTF-16 |
PDF_TEXT_CHAR_UNICODE_REPLACEMENT | 由于没有可用的回退,返回文本中包含 U+FFFD |
备注
请使用按位测试,因为回退结果同时带有缺失、未映射或无效的原因
直接访问文件句柄关闭后,标志仍在文本块列表中可用
一个增补 Unicode 标量占用两个 UTF-16 位置,两个位置带有相同的标志