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 位置返回相同的源范围