DAGetTextBlockCharContentLocation
直接访问、文本、提取、内容流、诊断
描述
返回与单个 Direct Access 提取字符关联的稳定内容流位置和编码源字节区间
语法
Delphi
Function TPDFlib.DAGetTextBlockCharContentLocation(TextBlockListID, Index,
CharIndex: Integer; Out ContentLayer, StreamObjectNumber,
StreamGeneration, InstructionIndex, OperandIndex, ArrayElementIndex,
SourceByteOffset, SourceByteLength, Flags: Integer): Integer;参数
| TextBlockListID | 由 DAExtractPageTextBlocks 返回的句柄 |
|---|---|
| Index | 从 1 开始的文本块索引 |
| CharIndex | 块文本内从 1 开始的 UTF-16 代码单元位置 |
| ContentLayer | 从 1 开始的页面 /Contents 层;嵌套内容为 0 |
| StreamObjectNumber | 包含流的对象编号;直接流为 0 |
| StreamGeneration | 包含流的世代编号 |
| InstructionIndex | 解码后内容程序中从 0 开始的指令索引 |
| OperandIndex | 从 0 开始的文本字符串操作数索引 |
| ArrayElementIndex | 从 0 开始的 TJ 数组元素;直接字符串操作数为 -1 |
| SourceByteOffset | 解码字符串值中从 0 开始的偏移;不存在可安全寻址的区间时为 -1 |
| SourceByteLength | 源字形对应的编码源字节数;不存在可安全寻址的区间时为 0 |
| Flags | 与 GetTextBlockCharContentLocation 共用的按位内容位置标志 |
返回值
| 1 | 已返回位置记录(包括合成记录或只读记录) |
|---|---|
| 0 | 句柄、块索引或字符索引无效 |
备注
直接访问位置仅用于诊断且只读,因为 ReplaceTextBlockCharSourceBytes 作用于所选的可编辑文档
偏移量寻址的是解码后的字体编码字符串字节,而非 Unicode 文本
直接访问文件句柄关闭后,位置数据仍在文本块列表中可用
增补字符和连字展开可能为多个 UTF-16 位置返回相同的源范围