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