GetTextBlockCharUnicodeFlags
文本、提取、诊断、Unicode
描述
返回选定文档文本块中单个字符的 Unicode 映射与回退标志
语法
Delphi
Function TPDFlib.GetTextBlockCharUnicodeFlags(TextBlockListID, Index, CharIndex: Integer): Integer;参数
| TextBlockListID | 由 ExtractPageTextBlocks 返回的句柄 |
|---|---|
| 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 位置,两个位置带有相同的标志