معالجة الخط ومشكلات الأداء
وترد جميع آليات معالجة الخط المتاحة في فئة FontSettings. هذه الفئة مسؤولة عن جلب الخطوط ضمن مصادر الخطوط المحددة وكذلك عن عملية استبدال الخط، كما هو موضح أدناه.
تحليل الخطوط التي تم حلها
يتم تحليل الخطوط في عدة خطوات:
- الحصول على معلومات للخط، حل من جميع الخطوط المتاحة.
- تحليل الخطوط التي تم حلها للحصول على الحروف الرسومية والمقاييس المتاحة (الأفقية والرأسية).
- تحليل الخطوط التي تم حلها للتضمين والترتيب الفرعي.
عندما يلتقي Aspose.Words بخط في المستند لأول مرة، فإنه يحاول الحصول على معلومات الخط الأساسية، مثل الاسم الكامل للخط واسم العائلة والإصدار والنمط من ملفات الخطوط الموجودة في كل مصدر خط. بعد استرداد جميع الخطوط، تستخدم Aspose.Words هذه التفاصيل للعثور على بيانات الخط المطلوبة أو بديل مناسب للخط المطلوب.
مشكلة في الأداء عند استبدال الخطوط
نظرا لأن الإجراء الموضح أعلاه يستغرق وقتا طويلا، فقد يؤثر سلبا على أداء التطبيق عند إطلاقه لأول مرة. ومع ذلك، فإن كل مثيل من FontSettings له ذاكرة تخزين مؤقت خاصة به، مما قد يقلل من وقت معالجة المستندات اللاحقة. على سبيل المثال، يمكنك مشاركة مثيل من فئة FontSettings بين مستندات مختلفة، مما يسمح لك بتسريع تحميل المستندات. يوضح المثال التالي هذا:
في حالة عدم تعريف FontSettings بشكل صريح، يستخدم Aspose.Words المثيل الافتراضي FontSettings. يتم أيضا مشاركة هذا المثيل تلقائيا بين المستندات، ويمكن استخراجه على النحو التالي:
C++
System::SharedPtr<FontSettings> fontSettings = System::MakeObject<FontSettings>()->get_DefaultInstance();
باستخدام المثيل الافتراضي FontSettings
إذا كنت متأكدا من أن جميع مستندات المعالجة تتطلب نفس إعدادات الخط، فمن المستحسن إعداد المثيل الافتراضي FontSettings واستخدامه. لنفترض أنك بحاجة إلى استخدام نفس مصادر الخطوط لجميع مستنداتك. في هذه الحالة، يمكنك فقط تعديل المثيل الافتراضي على النحو التالي: