الطريقة THotPDF.PreviewLoadedPageTextReplacement

تجهّز نص الاستبدال بخطوط Unicode مضمّنة، وتقيس كل مطابقة، وتُعيد خطة قابلة للتدقيق دون تغيير المستند المحمَّل

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

الخيارات والنتائج

تستخدم THPDFLoadedTextReplacementOptions.Default خط Arial وحجم خط المطابقة الأصلي وعرضها المقيس وارتفاعًا يعادل 1.25 من ذلك الحجم، مع تمكين الرفض الذرّي

تختار Appearance الخط والنمط واللون والمحاذاة والحشو؛ وتستخدم UseMatchFontSize=False الحجم المطلوب، بينما يوفّر BoxWidth وBoxHeight الموجبان صندوق التفاف صريحًا

تختار Appearance.OverflowPolicy القيمة ltopReject أو ltopClip أو ltopShrinkToFit؛ والقصّ يحتفظ بنص المنتِج الملائم فقط، أما التقليص ليلائم فيتوقف عند MinFontSize

يحمل THPDFLoadedTextReplacementPlan الطلب والخيارات وبصمة المصدر والأعداد ومصفوفة THPDFLoadedTextReplacementResults

يُبلِّغ كل THPDFLoadedTextReplacementResult عن فهارس الحروف (glyphs) والموضع الأصلي وأبعاد الصندوق وحجم الخط الفعلي وقيمة THPDFLoadedTextReplacementStatus: ltrsReady أو ltrsApplied أو ltrsRejected أو ltrsRolledBack، مع سبب للرفض أو التراجع

تقيّد MaxMatches وMaxGlyphs وMaxContentTokens وMaxContentBytes وMaxGeneratedBytes وحدّ نص المظهر تحليل المصدر والإخراج وموارد الخطوط المنسوخة

الهندسة والذرّية

يستخدم الاستبدال المولَّد سلاسل الخطوط الاحتياطية (fallback) للمستند وShapingFeatures ومفاتيح التشكيل التلقائي للنصوص البرمجية (script) واختيارات GSUB للنص البرمجي واللغة؛ هيّئ هذه قبل المعاينة واحتفظ بالإعدادات نفسها عند تطبيق الخطة

تقيّد كل مظهر استبدال اختيارات تشكيل الخط المميزة بـ 256 وبيانات الخط الخام التراكمية بـ 64 MiB، إضافة إلى ميزانيتَي التحليل والمخرجات المولَّدة للطلب

يبدّل الاستبدال الخطوط داخل تدفق النص الأصلي، ويُبقي النص المحيط قابلًا للبحث، ويستعيد مصفوفتَي القلم والسطر الأصليتين فتحافظ الحروف التالية (glyphs) والانتقالات بين السطور على مواضعها

النص المباشر للصفحة ذو الهندسة الأفقية غير المفردة مدعوم، بما يشمل تحويلات الصفحة وتحجيم النص والارتفاع (rise) والعامل TJ وعاملي الاقتباس الأحادي/المزدوج والمطابقات العابرة لمعامِلات متجاورة على السطر الأساسي نفسه

تُرفض المطابقات العابرة للسطور الأساسية والكتابة الرأسية والتحويلات المفردة والمحتوى غير المتوازن والحروف المفقودة (glyphs) والمستندات المحتوية على حقول توقيع؛ والنص داخل Form XObjects خارج نطاق مطابقة هذه الواجهة

مع Atomic=True يتراجع رفض أي مطابقة عن كل المطابقات الجاهزة؛ ومع Atomic=False يجوز تطبيق المطابقات الجاهزة بينما تبقى المطابقات المرفوضة كما هي، وتبقى النتيجة المنطقية False إذا رُفضت أي مطابقة

تستخدم المعاينة معاملة رسم بياني متداخلة وتراجع عنها مع الحفاظ على معاملة المستدعي الموجودة؛ وقد تُبطل ذاكرات المستند المؤقتة وتستدعي إشعار تعديل المستند رغم استعادة المحتوى

التثبيت

مرّر الخطة إلى ApplyLoadedPageTextReplacement لإعادة التحقق من بصمة محتواها ومقاييس حروفها قبل تطبيق الطلب ضمن معاملة رسم بياني

أعد احتساب الخطة بعد أي تغيير في المحتوى؛ فالخطة القديمة ترفع EInvalidOpException دون تطبيق استبدالاتها

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