ReplaceTextBlockCharSourceBytes

テキスト、抽出、コンテンツストリーム、ドキュメント編集

説明

選択されたドキュメントで、抽出された 1 文字にマップされたエンコード済みソースバイト範囲を置き換えます

構文

Delphi

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

パラメータ

TextBlockListID選択されたドキュメントに対して ExtractPageTextBlocks が返したハンドル
Index1 ベースのテキストブロックインデックス
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配列文字列、カーニング数値を保持します

2つの独立したフィンガープリントが解析前と書き込み前に古いコンテンツを検出するため、古い抽出結果が変更済みバイトを黙って標的にすることはありません

成功した置換のたびにページテキストを再抽出してください。前のリストのロケーションはすべて古いためです

リガチャ展開された文字は1つのソース範囲を共有するため、1つのソースグリフとして扱うべきです

成功でも失敗でも、その後に選択ページが復元されます