SearchAndReplaceTextInContentEx

擷取、Unicode、內容編輯

描述

使用精確的來源位元組範圍與經驗證的字型對應,取代支援的頁面文字中每一個不重疊的查詢符合項

本方法保留前後文字、既有的 TJ 數值調整與原始的後續文字錨點;空的取代字串只刪除符合的字元

所有選中的符合項都會先完成規劃與改寫,才提交頁面內容;無法表示的文字、不完整的字型對應或不支援的來源位置會拒絕請求,且不會取代任何所選頁面文字

語法

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 按列舉順序把搜尋旗標當成位元 1、2、4、8、16、32、64 與 128 使用;soAcrossLines 是位元 16,但在這裡不支援;未知位元會被這些介面拒絕

DLL A 的輸入字串使用實例的 ANSI 對寬字串轉換組態;想不受該組態影響傳入 Unicode,請改用寬字串進入點

傳回值

傳回被取代的符合項數量;沒有符合項或請求被拒時傳回 0。用 GetLastUnicodeReplacementDiagnostics 區分這兩種結果

LastErrorCode 535 表示輸入無效或擷取超限;537 表示不支援的編輯或編碼;有效搜尋但無符合項會回報 completed 且 replacedHits 為 0

備註

對應來自完整支援的 ToUnicode CMap 或經驗證的簡單字型編碼,包括支援的 Differences 字符名稱;不會做系統字碼頁轉換,也不猜測字符編碼

簡單字型必須提供有效的 PDF Widths、FirstChar 與 LastChar,或使用不帶 Widths 的確切標準十四款 Type1 字型名稱;系統字型後備與寬鬆名稱比對不能授權精確前進量

具名 UseCMap 繼承、無法解析的對應、Type3 字型前進量、直書、巢狀 Form 文字、合成字元、ActualText 取代、轉碼字串、跨圖層符合與部分連字符叢集都會回報為不支援

完整的連字符叢集在其原始位元組與 Unicode 對應都經過驗證時可以取代;前綴與後綴保留原始字型

搜尋選項保留既有意義,包括大小寫、全字符合、萬用字元、變音符號、標準等價與字位約束;soAcrossLines 與在開啟的 API 範圍內呼叫會被拒絕

規劃最多支援 4096 個符合項;擷取的來源快照上限為每串流 64 MiB、合計 512 MiB,來源位置記錄上限 64 MiB;字型對應剖析器另適用有界的 token 與 code-space 限制,交易總量為 262144 個對應與 800 萬個 UTF-16 目標單位

這些限制約束的是保留的擷取與規劃資料;既有的頁面載入與描繪有自己的配置,因此不保證絕對的記憶體峰值用量

共用的內容串流與資源字典會為所選頁面複製;文件選擇會被還原,過期的文字區塊清單必須在成功編輯後重新擷取

本操作會變更使用中的頁面內容,並非安全抹除 API:分離的物件或較早的增量修訂可能保留原始位元組

另請參閱

SearchAndReplaceTextInContent, SearchAndReplaceTextInContentEx, GetLastUnicodeReplacementDiagnostics, SearchText