THotPDF.PreviewLoadedPageTextReplacement Method

Değiştirme metnini gömülü Unicode fontlarla hazırlar, her eşleşmeyi ölçer ve yüklenmiş belgeyi değiştirmeden denetlenebilir bir plan döndürür

function PreviewLoadedPageTextReplacement(PageIndex: Integer;
  const Needle, Replacement: UnicodeString; MatchCase: Boolean;
  const Options: THPDFLoadedTextReplacementOptions;
  out Plan: THPDFLoadedTextReplacementPlan): Boolean;

Seçenekler ve sonuçlar

THPDFLoadedTextReplacementOptions.Default; Arial'ı, eşleşmenin özgün font boyutunu, ölçülen genişliğini ve bu boyutun 1,25 katı olan yüksekliği kullanır, atomik reddetme etkindir

Appearance fontu, stili, rengi, hizalamayı ve padding'i seçer; UseMatchFontSize=False istenen boyutu kullanır, pozitif BoxWidth ve BoxHeight ise açık bir sarma kutusu sağlar

Appearance.OverflowPolicy ltopReject, ltopClip veya ltopShrinkToFit seçer; clipping yalnızca üreticinin sığan metnini tutar, shrink-to-fit ise MinFontSize'ta durur

THPDFLoadedTextReplacementPlan; isteği, seçenekleri, kaynak parmak izini, sayıları ve THPDFLoadedTextReplacementResults dizisini taşır

Her THPDFLoadedTextReplacementResult; glif indekslerini, özgün konumu, kutu boyutlarını, etkin font boyutunu ve bir THPDFLoadedTextReplacementStatus değeri bildirir: ltrsReady, ltrsApplied, ltrsRejected veya ltrsRolledBack, reddetme ya da geri alma nedeniyle birlikte

MaxMatches, MaxGlyphs, MaxContentTokens, MaxContentBytes, MaxGeneratedBytes ve görünüm metin sınırı; kaynak parse'ını, çıktıyı ve kopyalanan font kaynaklarını sınırlar

Geometri ve atomiklik

Üretilen değiştirme; belgenin font fallback zincirlerini, ShapingFeatures değerini, betik auto-shaping anahtarlarını ve GSUB betik ile dil seçimlerini kullanır. Bunları önizlemeden önce yapılandırın ve planı uygularken aynı ayarları koruyun

Her değiştirme görünümü; isteğin parse ve üretilen-çıktı bütçelerine ek olarak, ayrı shaping font seçimlerini 256 ile, kümülatif ham font verisini 64 MiB ile sınırlar

Değiştirme, özgün metin akışı içinde font değiştirir, çevresindeki metni aranabilir tutar ve özgün pen ile line matrislerini geri yükler; böylece sonraki glifler ve satır geçişleri konumlarını korur

Yatay, tekillik içermeyen geometrili doğrudan sayfa metni desteklenir; sayfa dönüşümleri, metin ölçekleme, rise, TJ, tek/çift tırnak operatörleri ve aynı baseline üzerinde bitişik operand'lara yayılan eşleşmeler dahildir

Baseline'lar arasına yayılan eşleşmeler, dikey yazım, tekillik içeren dönüşümler, dengesiz içerik, eksik glifler ve imza alanı içeren belgeler reddedilir; Form XObject'lerin içindeki metin bu API'nin eşleşme kapsamı dışındadır

Atomic=True iken reddedilen herhangi bir eşleşme, hazır durumdaki tüm eşleşmeleri geri alır; Atomic=False iken hazır eşleşmeler uygulanabilir ve reddedilenler değişmeden kalır, Boolean sonuç herhangi bir eşleşme reddedilmişse False kalır

Önizleme; iç içe bir graph transaction kullanır ve geri alır, mevcut bir çağıran transaction'ını korur. İçerik geri yüklenmiş olsa da belge önbelleklerini geçersiz kılabilir ve belge-değişikliği bildirimini tetikleyebilir

Commit

Planı; içeriğini ve glif-metrik parmak izini, isteği bir graph transaction içinde uygulamadan önce yeniden doğrulamak için ApplyLoadedPageTextReplacement metoduna geçirin

İçerik değiştikten sonra planı yeniden hesaplayın; bayat bir plan, değişikliklerini uygulamadan EInvalidOpException fırlatır

Options := THPDFLoadedTextReplacementOptions.Default;
Options.Appearance.OverflowPolicy := ltopShrinkToFit;
if PDF.PreviewLoadedPageTextReplacement(0, 'Original', NewText,
  True, Options, Plan) then
  if PDF.ApplyLoadedPageTextReplacement(Plan, Applied) then
    PDF.SaveLoadedDocument(TargetPath);