ReplaceTextBlockCharSourceBytes
テキスト、抽出、コンテンツストリーム、ドキュメント編集
説明
選択されたドキュメントで、抽出された 1 文字にマップされたエンコード済みソースバイト範囲を置き換えます
構文
Delphi
Function TPDFlib.ReplaceTextBlockCharSourceBytes(TextBlockListID, Index,
CharIndex: Integer; Const NewSource: AnsiString): Integer;パラメータ
| TextBlockListID | 選択されたドキュメントに対して ExtractPageTextBlocks が返したハンドル |
|---|---|
| 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配列文字列、カーニング数値を保持します
2つの独立したフィンガープリントが解析前と書き込み前に古いコンテンツを検出するため、古い抽出結果が変更済みバイトを黙って標的にすることはありません
成功した置換のたびにページテキストを再抽出してください。前のリストのロケーションはすべて古いためです
リガチャ展開された文字は1つのソース範囲を共有するため、1つのソースグリフとして扱うべきです
成功でも失敗でも、その後に選択ページが復元されます