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);