قراءة معلومات الخط
استكشف الحروف الرسومية باستخدام Aspose.Font API Solution لـ C++. تعرف على الأفكار التفصيلية حول كل حد ومنحنى وفارق بسيط. يتيح لك الحل الخاص بنا العمل بسهولة مع الحروف الرسومية، مما يتيح لك استخراج معلومات حول الأحرف الفريدة لأي خط.
انغمس في عالم من إمكانيات الخطوط باستخدام Aspose.Font API Solution for C++ الذي يوفر لك مجموعة من الميزات القوية، بما في ذلك تحويلات الخطوط ومعالجة الحروف الرسومية واكتشاف الرموز اللاتينية والمزيد. تتيح لك واجهة برمجة التطبيقات (API) الخاصة بنا أيضًا العمل مع الحروف الرسومية والحصول على معلومات حول الحروف الرسومية المضمنة في الخط. ارفع مستوى تصميماتك، وعزز مشاريعك، واطلق العنان للإمكانات الكاملة للحروف الرسومية باستخدام Aspose.Font for C++. لا تنتظر واحصل على نسخة تجريبية مجانية!
الحرف الرسومي هو تصميم فريد لحرف أو رمز في محرف. لفهم وحدة الخطوط هذه بشكل أفضل ، اقرأ مقالة مقدمة إلى Glyph . مقاييس الخط هي القياسات والمواصفات المستخدمة في وصف المظهر المرئي لمحرف. يمكن أن تتضمن هذه المقاييس معلومات مثل ارتفاع الأحرف وعرض الأحرف والتباعد بين الأحرف وموضع الخط الأساسي ، من بين أمور أخرى. إنها تسمح للمصممين ومطوري البرامج بالتنبؤ بدقة بتخطيط النص في المستندات الرقمية وواجهات المستخدم.
تشرح هذه الصفحة كيفية استرداد مقاييس الخط المختلفة مثل عدد الحروف الرسومية ، وارتفاع الحرف ، وعرض الحرف الرسومي "أ" ، وما إلى ذلك. ومع ذلك ، فإن الوظيفة الكاملة للعمل مع الحروف الرسومية موصوفة بالتفصيل في مقالة استخدام كائنات الحروف الرسومية. يشتمل مثال الرمز على قسم حول استرداد البيانات الوصفية للخط ، بما في ذلك اسم الخط. يمكن دمج هذا النوع من الوظائف في تطبيقات الويب ، مثل تطبيق Font Metadata المتوفر في نظام Aspose البيئي. إذا كنت تريد معرفة أمثلة كاملة وملفات البيانات ، فالرجاء الانتقال إلى Aspose Github Project .
لتلقي مقاييس الخط التي نحتاجها:
Aspose.Font لـ C++ API وهي واجهة برمجة تطبيقات لمعالجة المستندات وتحويلها غنية بالميزات وقوية وسهلة الاستخدام.
افتح مدير الحزم NuGet ، وابحث عن Aspose.Font وقم بالتثبيت. يمكنك أيضًا استخدام الأمر التالي من Package Manager Console.
Package Manager Console Command
PM> Install-Package Aspose.Font
خطوات الحصول على مقاييس الخط باستخدام C++:
- استخراج معلومات حول خط إنشاء مثيل لفئة TtfFont .
- اطبع اسم الخط باستخدام خاصية FontName.
- اطبع عدد الحروف الرسومية في الخط باستخدام خاصية NumGlyphs. يتم أيضًا طباعة مقاييس الخط ، مثل الصاعد ، والمنزل ، والصاعد المطبعي ، والمنخفض المطبعي ، والوحدات في القيمة.
- يقوم الرمز بعد ذلك باسترداد جدول ترميز unicode
cmap
من الخط ، والذي يستخدم لتعيين رموز الأحرف إلى فهارس الحروف الرسومية. يتحقق مما إذا كان الخط يحتوي على كل من جدولcmap
وجدولglyf
، والذي يتم استخدامه للوصول إلى الصور الرمزية. في حالة وجود كلا الجدولين ، فإنه يسترد فهرسglyf
للحرفA
ثم يحصل على الحرف الرسومي للرمزA
. - اطبع المربع المحيط بالحرف الرسومي
A
وعرضه.
كود C++ للحصول على معلومات حول الحروف الرسومية للخط
using Aspose::Font;
using Aspose::Font::Glyphs;
using Aspose::Font::Ttf;
//Font file name with the full path
System::SharedPtr<FontDefinition> fd = System::MakeObject<FontDefinition>(Aspose::Font::FontType::TTF, System::MakeObject<FontFileDefinition>(u"ttf", System::MakeObject<FileSystemStreamSource>(fileName)));
System::SharedPtr<TtfFont> font = System::DynamicCast_noexcept<Aspose::Font::Ttf::TtfFont>(Aspose::Font::Font::Open(fd));
System::String name = font->get_FontName();
System::Console::WriteLine(System::String(u"Font name: ") + name);
System::Console::WriteLine(System::String(u"Glyph count: ") + font->get_NumGlyphs());
System::String metrics = System::String::Format(u"Font metrics: ascender - {0}, descender - {1}, typo ascender = {2}, typo descender = {3}, UnitsPerEm = {4}", font->get_Metrics()->get_Ascender(), font->get_Metrics()->get_Descender(), font->get_Metrics()->get_TypoAscender(), font->get_Metrics()->get_TypoDescender(), font->get_Metrics()->get_UnitsPerEM());
System::Console::WriteLine(metrics);
//Get cmap unicode encoding table from the font as object TtfCMapFormatBaseTable to access the information about the font glyph for symbol 'A'.
//Also check that font has object TtfGlyfTable (table 'glyf') to access glyph.
System::SharedPtr<Aspose::Font::TtfCMapFormats::TtfCMapFormatBaseTable> cmapTable;
if (font->get_TtfTables()->get_CMapTable() != nullptr)
{
cmapTable = font->get_TtfTables()->get_CMapTable()->FindUnicodeTable();
}
if (cmapTable != nullptr && font->get_TtfTables()->get_GlyfTable() != nullptr)
{
System::Console::WriteLine(System::String(u"Font cmap unicode table: PlatformID = ") + cmapTable->get_PlatformId() + u", PlatformSpecificID = " + cmapTable->get_PlatformSpecificId());
//Code for 'A' symbol
char16_t unicode = (char16_t)65;
//Glyph index for 'A'
uint32_t glIndex = cmapTable->GetGlyphIndex(unicode);
if (glIndex != static_cast<uint32_t>(0))
{
//Glyph for 'A'
System::SharedPtr<Glyph> glyph = font->GetGlyphById(glIndex);
if (glyph != nullptr)
{
//Print glyph metrics
System::Console::WriteLine(u"Glyph metrics for 'A' symbol:");
System::String bbox = System::String::Format(System::String(u"Glyph BBox: Xmin = {0}, Xmax = {1}") + u", Ymin = {2}, Ymax = {3}", glyph->get_GlyphBBox()->get_XMin(), glyph->get_GlyphBBox()->get_XMax(), glyph->get_GlyphBBox()->get_YMin(), glyph->get_GlyphBBox()->get_YMax());
System::Console::WriteLine(bbox);
System::Console::WriteLine(System::String(u"Width:") + font->get_Metrics()->GetGlyphWidth(System::MakeObject<GlyphUInt32Id>(glIndex)));
}
}
}
التعليمات
1. ما هو مقياس الخط؟
إنها الخاصية التي تحدد طريقة عرض الخط على الشاشة. بعض المقاييس مثل الصعود والنزول والعرض وتقنين الأحرف تشبه مقاييس الصورة الرمزية .
2. كيف أحصل على مقاييس الخط؟
حدد الخط الذي تريد العمل معه. باستخدام خصائص واجهة Aspose.Font.IFontMetrics Class ، استخرج المعلومات حول مقاييس الخط التي تحتاجها.
3. ما هي البيانات الوصفية للخط؟
البيانات الوصفية للخط هي في الأساس معلومات عنها. يتضمن العديد من البيانات مثل اسم الخط واسم عائلة الخط واسم التذييل والترخيص ومعلومات المؤلف والمصمم وغير ذلك الكثير.
4. كيف أقوم بتغيير البيانات الوصفية للخط؟
للاطلاع على معلومات الخط أو تغييرها عبر الإنترنت ، استخدم تطبيق Font Metadata .