تحميل ملفات الخطوط من مصفوفة بايت
حل API لـ C++ لتحميل خطوط TTF، WOFF، EOT، Type 1، و CFF من MemoryStream.
توفر لك Aspose.Font API حلولاً واسعة للعمل مع الخطوط، بما في ذلك التحويل، ومعالجة الحروف، واكتشاف الرموز اللاتينية، وأكثر من ذلك. ولكن الخطوة الأولى في معالجة الخط هي تحميل ملفات الخط لاستخدامها لاحقًا.
توضح هذه المقالة كيفية تحميل ملفات الخط من التدفقات، ولكن للحصول على معلومات أكثر تفصيلاً حول تحميل الخطوط، راجع المقالة كيفية تحميل الملفات؟ . هناك ستجد العديد من أمثلة كود C++ وتفهم الكائنات والمعاملات اللازمة لتحميل الخط.
يدعم الـ API عدة تنسيقات للخطوط، بما في ذلك TrueType (خط واحد)، TrueType (مجموعة خطوط)، Web Open Font Format، Web Open Font Format الإصدار 2.0، Embedded OpenType، Adobe Type 1 (pfa, pfb, afm, pfm)، و Compact Font Format. تعرض المقاطع البرمجية المقدمة كيفية تحميل ملف True Type Font (TTF) من تدفق.
كما يمكننا أن نتعلم من Wikipedia فإن TTF يرمز إلى TrueType Font وهو تنسيق ملف للخطوط القابلة للتوسيع. تم تطويره أصلاً من قبل شركة Apple Computer، ولكنه يُستخدم الآن على نطاق واسع في نظامي التشغيل Mac و Windows. تحتوي ملفات TTF على تعليمات حول كيفية عرض كل حرف من الخط بأحجام وأنماط مختلفة، ويمكن تغيير حجمها بسهولة واستخدامها في تطبيقات مختلفة دون فقدان الجودة. تُستخدم خطوط TTF على نطاق واسع في الطباعة الرقمية وتُستعمل عادةً في التصميم الويب ومعالجة النصوص والنشر المكتبي.
لتحميل الخطوط، ستحتاج إلى Aspose.Font لـ C++ API، وهو API قوي وسهل الاستخدام لمعالجة المستندات والتحويل على منصة C++. للحصول على الـ API، افتح مدير الحزم NuGet وابحث عن Aspose.Font، ثم قم بتثبيته. يمكنك أيضًا استخدام الأمر التالي في وحدة تحكم مدير الحزم.
Package Manager Console Command
PM> Install-Package Aspose.Font
تحميل TTF من مصفوفة بايت/MemoryStream باستخدام C++
هذه المقتطف البرمجي مكتوب بلغة C++ ويظهر كيفية تحميل ملف TrueType Font (TTF) باستخدام Aspose.Font API. يقوم الكود بالخطوات التالية:
- إنشاء المسار إلى ملف الخط. هنا، DataDir هو متغيّر مُعرّف مسبقًا يحتوي على مسار المجلد الذي يقع فيه ملف الخط Montserrat-Regular.ttf. تُدمج طريقة Path.Combine المسارين لإنشاء المسار الكامل إلى ملف الخط.
- تحميل البيانات الثنائية للخط إلى مصفوفة بايت. تقوم طريقة File.ReadAllBytes() بقراءة محتويات ملف الخط وتعيد البيانات كمصفوفة بايت.
- تهيئة كائن FontDefinition . يشير FontType.TTF إلى أن ملف الخط هو TrueType Font(.ttf) وتُنشئ الكائن الجديد ByteContentStreamSource (fontBytes) كائن ByteContentStreamSource استنادًا إلى البيانات الثنائية المخزنة في مصفوفة fontBytes.
- تحميل الخط. تُنشئ طريقة Font.Open() كائن FontDefinition كمعامل وتُعيد الخط المحمل، والذي يمكن استخدامه بعد ذلك لمزيد من التعديلات.
كود C++ لتحميل الخطوط من التدفق
using Aspose::Font;
using Aspose::Font::Sources;
using Aspose::Font::Ttf; // Construct the path to the file
System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"Montserrat-Regular.ttf");
// Load font binary data into the byte array
System::ArrayPtr<uint8_t> fontBytes = System::IO::File::ReadAllBytes(fontPath);
// Initialize the FontDefinition object passing TTF as the FontType value, "ttf" as the fileExtension value,
// and ByteContentStreamSource object based on the fontBytes array
System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition (Aspose::Font::FontType::TTF, u"ttf", System::MakeObject<ByteContentStreamSource>(fontBytes));
// Load the font
System::SharedPtr<Aspose::Font::Font> font = Aspose::Font::Font::Open(fontDef);