ReplaceTextBlockCharSourceBytes

文本、提取、内容流、文档编辑

描述

替换选定文档中映射到单个已提取字符的编码源字节范围

语法

Delphi

Function TPDFlib.ReplaceTextBlockCharSourceBytes(TextBlockListID, Index,
  CharIndex: Integer; Const NewSource: AnsiString): Integer;

参数

TextBlockListIDExtractPageTextBlocks 为选定文档返回的句柄
Index从 1 开始的文本块索引
CharIndex块文本内从 1 开始的 UTF-16 代码单元位置
NewSource活动 PDF 字体编码下的原始替换字节,而非 Unicode 文本

返回值

1已替换映射的字节范围并重写了其页面内容层
0位置无效、已过期或只读,或内容层无法重写

错误代码

PDFLIB_ERROR_TEXT_LOCATION_INVALID列表、索引、位置或内容指令无效
PDFLIB_ERROR_TEXT_LOCATION_STALE目标页面内容层自提取以来已发生变化
PDFLIB_ERROR_TEXT_LOCATION_READ_ONLY该字符为生成字符、被 /ActualText 替换、嵌套在 Form 中、在字体映射前经过转码,或跨内容层拆分

备注

该方法只重写所在页面内容层,保留相邻的 Tj 字符串、TJ 数组字符串和字距数值

两个独立的指纹在解析前和写入前检测过期内容,因此旧的提取结果不会悄然命中已更改的字节

每次成功替换后都要重新提取页面文本,因为上一个列表中的所有位置都已过期

连字展开的字符共享同一源范围,应视为一个源字形

成功或失败之后都会恢复所选页面