SearchAndReplaceTextInContentEx
Ayıklama, Unicode, içerik düzenleme
Açıklama
Desteklenen sayfa metnindeki çakışmayan her sorgu geçişini, tam kaynak bayt aralıkları ve doğrulanmış bir yazı tipi eşlemesiyle değiştirir
Yöntem, çevresindeki metni, mevcut TJ sayısal ayarlamalarını ve özgün ardındaki metin çapasını korur; boş bir değiştirme, yalnızca eşleşen karakterleri siler
Seçilen tüm isabetler, sayfa içeriği işlenmeden önce planlanır ve yeniden yazılır; temsil edilemeyen metin, eksik yazı tipi eşlemeleri veya desteklenmeyen bir kaynak konum, hiçbir seçili sayfa metnini değiştirmeden isteği reddeder
Sözdizimi
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;Parametreler
ReplacementFontID 0, özgün yazı tipini kullanır; pozitif bir değer, seçili belgede eksiksiz doğrulanmış bir kodlaması olan bir yazı tipini tanımlamalıdır
Değiştirme yazı tipi yalnızca değiştirme bölümleri için seçilir ve dokunulmamış soneklerden önce özgün yazı tipine dönülür; bu yöntem, otomatik olarak yazı tipi seçmez veya kurmaz
DLL ve ActiveX Options, arama bayraklarını enum sırasında 1, 2, 4, 8, 16, 32, 64 ve 128 bitleri olarak kullanır; soAcrossLines 16. bittir ve burada desteklenmez; bilinmeyen bitler bu arabirimler tarafından reddedilir
DLL A girdi dizeleri, örneğin ANSI'den geniş karaktere dönüşüm yapılandırmasını kullanır; Unicode'u bu yapılandırmadan bağımsız aktarmak için geniş giriş noktasını kullanın
Dönüş değerleri
Değiştirilen eşleşme sayısını; eşleşme yokluğunda ya da reddedilen istekte 0 döndürür. Bu sonuçları ayırt etmek için GetLastUnicodeReplacementDiagnostics'a bakın
LastErrorCode 535 geçersiz girdiyi veya yakalama sınırlarını bildirir; 537 desteklenmeyen düzenlemeyi ya da kodlamayı bildirir. Eşleşme olmayan geçerli bir arama, replacedHits 0 ile completed bildirir
Açıklamalar
Eşlemeler, desteklenen Differences glif adları dahil, tam desteklenen bir ToUnicode CMap'inden veya doğrulanmış bir basit yazı tipi kodlamasından gelir; sistem kod sayfası dönüşümü ya da tahmini glif kodlaması kullanılmaz
Basit yazı tipleri geçerli PDF Widths, FirstChar ve LastChar sağlamalı ya da Widths olmadan tam bir standart on dört Type1 yazı tipi adı kullanmalıdır; sistem yazı tipi yedeği ve gevşek ad eşleştirmesi, tam ilerlemeyi yetkilendirmez
Adlandırılmış UseCMap kalıtımı, çözülemeyen eşlemeler, Type3 yazı tipi ilerlemeleri, dikey yazım, iç içe Form metni, sentetik karakterler, ActualText değiştirmeleri, kod dönüştürülmüş dizgiler, katmanlar arası eşleşmeler ve eksik ligatür kümeleri desteklenmeyen olarak bildirilir
Eksiksiz bir ligatür kümesi, özgün baytları ve Unicode eşlemesi doğrulandığında değiştirilebilir; önekler ve sonekler özgün yazı tipinde kalır
Arama seçenekleri; büyük/küçük harf, tam kelime, joker, diyakritik, kuramsal eşdeğerlik ve grafem kısıtları dahil, mevcut anlamlarını korur. soAcrossLines ve açık bir API kapsamı içindeki çağrılar reddedilir
Planlama en fazla 4096 eşleşmeyi destekler; yakalanan kaynak anlık görüntüleri akış başına 64 MiB ve toplamda 512 MiB ile sınırlıdır; yakalanan kaynak konumu kayıtları 64 MiB'dir. Yazı tipi eşlemesi ayrıştırıcısı da sınırlı işaret ve kod alanı sınırları uygular; işlem toplamları 262144 eşleme ve 8 Mi UTF-16 hedef birimidir
Bu sınırlar, tutulan yakalama ve planlama verisini kısıtlar; mevcut sayfa yükleme ve oluşturmanın kendi ayırmaları vardır, dolayısıyla bunlar mutlak tepe bellek kullanımının garantisi değildir
Paylaşılan içerik akışları ve kaynak sözlükleri, seçili sayfalar için kopyalanır; belge seçimi geri yüklenir ve bayat metin bloğu listeleri başarılı bir düzenlemeden sonra yeniden ayıklanmalıdır
Bu işlem etkin sayfa içeriğini değiştirir ve güvenli silme API'si değildir: koparılmış nesneler veya önceki artımlı revizyonlar özgün baytları koruyabilir
Ayrıca bkz
SearchAndReplaceTextInContent, SearchAndReplaceTextInContentEx, GetLastUnicodeReplacementDiagnostics, SearchText