تخصيص خطوط PowerPoint في С++
تتيح لك Aspose Slides تحميل هذه الخطوط باستخدام FontsLoader::LoadExternalFonts:
تحميل خطوط مخصصة
تتيح لك Aspose.Slides تحميل الخطوط المستخدمة في العرض التقديمي دون تثبيتها على النظام. يؤثر هذا على مخرجات التصدير—مثل PDF، الصور، وغيرها من الصيغ المدعومة—بحيث تبدو المستندات الناتجة متسقة عبر البيئات. يتم تحميل الخطوط من أدلة مخصصة.
- حدد مجلدًا أو أكثر يحتوي على ملفات الخط.
- استدعِ الطريقة الثابتة FontsLoader::loadExternalFonts لتحميل الخطوط من تلك المجلدات.
- حمّل وقدّم/صدّر العرض التقديمي.
- استدعِ FontsLoader.clearCache لمسح ذاكرة التخزين المؤقت للخطوط.
يوضح مثال الشفرة التالي عملية تحميل الخطوط:
// تحديد المجلدات التي تحتوي على ملفات خطوط مخصصة.
auto fontFolders = MakeObject<Array<String>>(1, externalFontFolder );
// حمّل الخطوط المخصصة من المجلدات المحددة.
FontsLoader::LoadExternalFonts(fontFolders);
auto presentation = MakeObject<Presentation>(u"sample.pptx");
// اعرض/صدّر العرض التقديمي (مثال: إلى PDF أو صور أو صيغ أخرى) باستخدام الخطوط المحمّلة.
presentation->Save(u"output.pdf", SaveFormat::Pdf);
presentation->Dispose();
// امسح ذاكرة التخزين المؤقت للخطوط بعد الانتهاء من العمل.
FontsLoader::ClearCache();
ملاحظة
FontsLoader::loadExternalFonts يضيف مجلدات إضافية إلى مسارات بحث الخطوط، لكنه لا يغيّر ترتيب تهيئة الخطوط. يتم تهيئة الخطوط بهذا الترتيب:
- مسار الخط الافتراضي لنظام التشغيل.
- المسارات التي تم تحميلها عبر FontsLoader.
الحصول على مجلدات الخطوط المخصصة
توفر Aspose.Slides الدالة FontsLoader::GetFontFolders() للسماح لك بالعثور على مجلدات الخطوط. تُرجع هذه الدالة المجلدات التي تمت إضافتها عبر طريقة LoadExternalFonts ومجلدات خطوط النظام.
يعرض هذا الكود C++ كيفية استخدام طريقة FontsLoader::GetFontFolders():
// هذا السطر يطبع المجلدات التي يتم فحصها لملفات الخطوط.
// هذه هي المجلدات التي أضيفت عبر طريقة LoadExternalFonts ومجلدات خطوط النظام.
auto fontFolders = FontsLoader::GetFontFolders();
تحديد الخطوط المخصصة المستخدمة مع عرض تقديمي
توفر Aspose.Slides الخاصية LoadOptions::set_DocumentLevelFontSources للسماح لك بتحديد الخطوط الخارجية التي سيتم استخدامها مع العرض التقديمي.
يعرض هذا الكود C++ كيفية استخدام الخاصية LoadOptions::set_DocumentLevelFontSources:
auto memoryFont1 = File::ReadAllBytes(u"customfonts\\CustomFont1.ttf");
auto memoryFont2 = File::ReadAllBytes(u"customfonts\\CustomFont2.ttf");
auto loadOptions = System::MakeObject<LoadOptions>();
loadOptions->get_DocumentLevelFontSources()->set_FontFolders(System::MakeArray<String>({u"assets\\fonts", u"global\\fonts"}));
loadOptions->get_DocumentLevelFontSources()->set_MemoryFonts(System::MakeArray<ArrayPtr<uint8_t>>({memoryFont1, memoryFont2}));
{
auto presentation = System::MakeObject<Presentation>(u"MyPresentation.pptx", loadOptions);
//العمل مع العرض التقديمي
//CustomFont1, CustomFont2 بالإضافة إلى الخطوط من مجلدي assets\fonts & global\fonts ومجلداتهما الفرعية متاحة للعرض التقديمي
}
إدارة الخطوط خارجيًا
توفر Aspose.Slides الطريقة FontsLoader::LoadExternalFont للسماح لك بتحميل الخطوط الخارجية إلى مصفوفة بايت.
يعرض هذا الكود C++ عملية تحميل الخطوط إلى مصفوفة بايت:
// مسار دليل المستندات
const String outPath = u"../out/SpecifyFontsUsedWithPresentation.pptx";
const String templatePath = u"../templates/AccessSlides.pptx";
ArrayPtr<String> fontsLocation = MakeArray<System::String>({ u"assets\\fonts", u"global\\fonts" });// ;
ArrayPtr<ArrayPtr<uint8_t>> memoryfontsLocation = MakeArray < ArrayPtr<uint8_t>>({ File::ReadAllBytes(u"../templates/CustomFont1.ttf"), File::ReadAllBytes(u"../templates/CustomFont2.ttf") });
SharedPtr < Aspose::Slides::LoadOptions > loadOptions = MakeObject <Aspose::Slides::LoadOptions>();
loadOptions->get_DocumentLevelFontSources()->set_FontFolders(fontsLocation);
loadOptions->get_DocumentLevelFontSources()->set_MemoryFonts(memoryfontsLocation);
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath, loadOptions);
الأسئلة المتكررة
هل تؤثر الخطوط المخصصة على التصدير إلى جميع الصيغ (PDF، PNG، SVG، HTML)؟
نعم. تُستخدم الخطوط المتصلة من قبل المُعالج عبر جميع صيغ التصدير.
هل يتم تضمين الخطوط المخصصة تلقائيًا في ملف PPTX الناتج؟
لا. تسجيل الخط للتص rendering لا يعني تضمينه في ملف PPTX. إذا كنت بحاجة إلى تضمين الخط داخل ملف العرض التقديمي، يجب عليك استخدام ميزات التضمين الصريحة ميزات التضمين.
هل يمكنني التحكم في سلوك الاحتياطي عندما يفتقر الخط المخصص إلى بعض الحروف؟
نعم. قم بتكوين استبدال الخط، قواعد الاستبدال، ومجموعات الاحتياطي لتحديد بالضبط أي خط يُستخدم عندما تكون الحرف المطلوب غير موجود.
هل يمكنني استخدام الخطوط في حاويات Linux/Docker دون تثبيتها على مستوى النظام؟
نعم. اشِر إلى مجلدات الخط الخاصة بك أو حمّل الخطوط من مصفوفات البايت. هذا يزيل أي اعتماد على أدلة الخط في نظام الحاوية.
ماذا عن الترخيص—هل يمكنني تضمين أي خط مخصص دون قيود؟
أنت مسؤول عن الامتثال لترخيص الخط. تختلف الشروط؛ بعض التراخيص تحظر التضمين أو الاستخدام التجاري. دائمًا راجع اتفاقية الترخيص الخاصة بالخط قبل توزيع المخرجات.