SearchAndReplaceTextInContentEx

抽出、Unicode、コンテンツ編集

説明

対応するページテキスト内の、重なり合わないすべての検索語出現箇所を、正確なソースバイト範囲と検証済みフォントマッピングで置換します

このメソッドは周囲のテキスト、既存の TJ 数値調整、元の後続テキストアンカーを保持します。空の置換文字列は、一致した文字だけを削除します

選択されたすべての一致箇所は、ページコンテンツのコミット前に計画と書き換えが行われます。表現できないテキスト、不完全なフォントマッピング、サポートされないソース位置は、選択されたページテキストを 1 つも置換せずに要求を拒否します

構文

Delphi

Function TPDFlib.SearchAndReplaceTextInContentEx(Const Query, Replacement: WideString; Options: TPDFlibSearchOptions; Const PageRange: WideString; ReplacementFontID: Integer): Integer;

DLL

Function DLSearchAndReplaceTextInContentEx(InstanceID: Integer; Query: PWideChar; Replacement: PWideChar; Options: Integer; PageRange: PWideChar; ReplacementFontID: Integer): Integer; Stdcall;
Function DLSearchAndReplaceTextInContentExA(InstanceID: Integer; Query: PAnsiChar; Replacement: PAnsiChar; Options: Integer; PageRange: PAnsiChar; ReplacementFontID: Integer): Integer; Stdcall;

ActiveX

Function PDFlib::SearchAndReplaceTextInContentEx(Query: WideString; Replacement: WideString; Options: Integer; PageRange: WideString; ReplacementFontID: Integer): Integer;

パラメータ

ReplacementFontID が 0 なら元のフォントを使います。正の値は、完全な検証済みエンコーディングを持つ、選択ドキュメント内のフォントを指す必要があります

置換フォントが選ばれるのは置換ランだけの間で、触っていない接尾辞の前で元のフォントに戻ります。このメソッドがフォントを自動選択したりインストールしたりすることはありません

DLL と ActiveX の Options は、enum の順序で検索フラグをビット 1、2、4、8、16、32、64、128 として使います。soAcrossLines はビット 16 で、ここではサポートされません。未知のビットはこれらのファサードで拒否されます

DLL の A 系入力文字列は、そのインスタンスの ANSI→ワイド変換構成でデコードされます。この構成に依存せず Unicode を渡したい場合は、ワイドのエントリポイントを使ってください

戻り値

置換した一致件数を返します。一致なしと拒否された要求は 0 になります。どちらの結果かは GetLastUnicodeReplacementDiagnostics で判別してください

LastErrorCode 535 は無効な入力またはキャプチャ上限、537 はサポートされない編集やエンコーディングを報告します。一致がなかった有効な検索は、replacedHits 0 の completed を報告します

備考

マッピングは完全にサポートされた ToUnicode CMap か、サポートされた Differences グリフ名を含む検証済み簡易フォントエンコーディングから得られます。システムコードページ変換や推測によるグリフエンコーディングは使いません

簡易フォントは、有効な PDF Widths、FirstChar、LastChar を持つか、Widths なしで標準 14 書体の正確な Type1 フォント名である必要があります。システムフォントへのフォールバックや緩い名前一致では、正確なアドバンスは認められません

名前付き UseCMap の継承、未解決のマッピング、Type3 フォントのアドバンス、縦書き、ネストしたフォームテキスト、合成文字、ActualText 置換、トランスコードされた文字列、レイヤーまたぎの一致、部分的な合字クラスターは unsupported として報告されます

完全な合字クラスターは、元のバイトと Unicode マッピングが検証できれば置換できます。接頭辞と接尾辞は元のフォントのままです

検索オプションの意味は従来どおりです。大文字小文字、完全一致単語、ワイルドカード、ダイアクリティカルマーク、正規等価性、書記素の各制約が含まれます。soAcrossLines と、開いている API スコープ内での呼び出しは拒否されます

計画は最大 4096 件の一致を扱えます。キャプチャされたソーススナップショットはストリームあたり 64 MiB、合計 512 MiB、ソース位置レコードは 64 MiB までです。フォントマッピングのパーサーにもトークン数とコードスペースの上限があり、トランザクション合計は 262144 マッピング、8 Mi UTF-16 ターゲット単位です

これらの上限は保持されるキャプチャと計画データを制約するものです。既存のページ読み込みや描画にはそれぞれのアロケーションがあるため、絶対的なピークメモリ使用量の保証ではありません

共有コンテンツストリームとリソースディクショナリは、選択されたページ向けにコピーされます。ドキュメントの選択状態は復元されますが、成功した編集の後は古いテキストブロックリストを抽出し直す必要があります

この操作はアクティブなページコンテンツを変更するもので、セキュア消去 API ではありません。切り離されたオブジェクトや以前のインクリメンタルリビジョンには、元のバイトが残ることがあります

関連項目

SearchAndReplaceTextInContent、SearchAndReplaceTextInContentEx、GetLastUnicodeReplacementDiagnostics、SearchText