|
يسجل خط Unicode إضافيًا (من النوع 0 / CID-keyed) لإدراجه في قاموس الموارد الافتراضية لـ AcroForm (/DR)؛ يتيح لمستند PDF واحد كشف خطوط Unicode متعددة لعناصر واجهة مستخدم AcroForm في نفس الوقت - ويُستخدم عادةً للنماذج متعددة اللغات التي تحتاج (على سبيل المثال) إلى خط لاتيني بالإضافة إلى خط CJK بالإضافة إلى خط عربي في نفس النموذج
صيغة Delphi:
procedure RegisterAcroFormFont(const FontResourceName: AnsiString;
FontIndirectRef: THPDFObject);
الوصف
تشير عناصر واجهة مستخدم AcroForm إلى الخطوط من خلال قاموس الموارد الافتراضية (/DR) على قاموس AcroForm، والذي يعمل كمجمع موارد مشترك لجميع تدفقات مظهر حقول النموذج؛ قبل الإصدار v2.119.42، كان AcroForm /DR يكشف عن خط Unicode واحد بالضبط (عادةً خط النوع 0 المساعد المسجل من خلال SetFormUnicodeFontDict)، مما حد من سير عمل النماذج متعددة اللغات لأن كل عنصر واجهة مستخدم كان عليه التقصير عبر نفس برنامج الخط
بعد الإصدار v2.119.42، يمكن للمستدعين تسجيل خطوط Unicode إضافية بأسماء موارد عشوائية؛ يصبح كل خط مسجل مدخلاً /DR /Font /<name> <indirect ref> داخل قاموس AcroForm /DR عند EndDoc؛ يمكن لتدفقات مظهر عناصر واجهة مستخدم الإشارة بعد ذلك إلى أي من الأسماء المسجلة من خلال عامل التشغيل /Tf <name> <size> الخاص بها داخل تدفق محتوى المظهر
المعلمات
FontResourceName - اسم PDF الذي يشير إليه operator المظهر /Tf. العرف: معرف قصير وثابت دون slash بادئة، مثل 'NotoSansArab' أو 'NotoSansCJK'. يكتب HotPDF slash البادئة عند serialization
FontIndirectRef - an existing indirect Type 0 (CID-keyed) font dictionary, typically the result of CreateIndirectFontDict over a font registered via RegisterUnicodeTTF.
سير العمل النموذجي (نموذج متعدد اللغات)
PDF.RegisterUnicodeTTF('NotoSansArab', 'NotoSansArabic-Regular.ttf');
PDF.RegisterUnicodeTTF('NotoSansJP' , 'NotoSansJP-Regular.otf');
ArabRef := PDF.CreateIndirectFontDict('NotoSansArab');
JPRef := PDF.CreateIndirectFontDict('NotoSansJP');
PDF.RegisterAcroFormFont('NotoSansArab', ArabRef);
PDF.RegisterAcroFormFont('NotoSansJP' , JPRef);
الآن يمكن لعناصر واجهة المستخدم ذات المحتوى العربي إنشاء تدفقات المظهر الخاصة بها باستخدام /NotoSansArab 12 Tf بينما تستخدم عناصر واجهة المستخدم ذات المحتوى الياباني /NotoSansJP 12 Tf، مشاركة مجمع موارد AcroForm /DR واحد على مستوى المستند
التعايش مع SetFormUnicodeFontDict
يستمر المساعد المسبق للخط الفردي (SetFormUnicodeFontDict) في العمل للمشاريع التي تحتاج فقط إلى خط Unicode واحد في AcroForm /DR؛ وتعتبر طريقة RegisterAcroFormFont إضافية: يمكن للمستدعين استخدامها بالإضافة إلى SetFormUnicodeFontDict، أو استبدال SetFormUnicodeFontDict بالكامل عند الحاجة إلى أكثر من خط Unicode واحد
انظر أيضًا: THotPDF.SetFormUnicodeFontDict، THotPDF.CreateIndirectFontDict، دعم AcroForm، THPDFPage.AddTextField
|