
Aspose.Font لـ C++
واجهة برمجة تطبيقات الخطوط C++ للقراءة، الحفظ والتحويل
مكتبة C++ تسمح بتحميل، قراءة، حفظ وتحويل صيغ الخطوط المختلفة مثل TrueType و WOFF و EOT و OpenType و CFF و Type1 داخل التطبيقات المبنية على C++.
Aspose.Font لـ C++ هو أداة قوية جدًا تبسط التعامل مع الخطوط وتقدم مجموعة واسعة من الميزات للمطورين والمبرمجين. يتيح لمطوري C++ العمل مع تنسيقات خطوط متعددة وأداء مجموعة واسعة من المهام المتعلقة بالخطوط. يمكن للمطورين تحميل وإنشاء وتحرير وتحويل ملفات الخطوط بتنسيقات مختلفة، مثل TrueType (TTF)، OpenType (OTF)، PostScript Type 1 (PFB/PFA)، WOFF، EOT، والعديد غيرها. يمكن لواجهة برمجة التطبيقات رفع مهامك المتعلقة بالخط إلى المستوى التالي دون أي تبعيات خارجية.
Aspose.Font لـ C++ هي مكتبة غنية بالميزات توفر قدرات شاملة لمعالجة الخطوط لمطوري C++. تدعم المكتبة مجموعة واسعة من عمليات الخطوط، بما في ذلك استخراج بيانات تعريف الخط، تحميل ملفات الخط من القرص أو التدفق، الوصول إلى معلومات الحروف، تحويل الخطوط إلى صيغ مختلفة، قراءة معلومات الخط، تحديث ملفات الخط وحفظها على القرص، قراءة معلومات القياسات من ملفات الخط، عرض النص باستخدام حروف الخط، دمج خطوط TrueType وغيرها الكثير. كما تدعم أنظمة التشغيل 32 بت و64 بت.
Aspose.Font لـ C++ يقدم قدرات طباعية متقدمة، بما في ذلك معالجة الروابط الأحرفية (ligatures)، واستبدالات الحروف السياقية والاختيارية، وخيارات تخطيط النص المتقدمة. هذه الميزات مفيدة بشكل خاص عند العمل مع نصوص معقدة أو لغات تتطلب تشكيل نص متقن وعرضه. واجهة برمجة التطبيقات (API) متعددة المنصات وتتيح للمستخدمين استخدامها بسلاسة على أنظمة تشغيل مختلفة، بما في ذلك Windows وLinux وmacOS. إذا كنت تبحث عن تعزيز قدرات معالجة الخطوط في تطبيقات C++ الخاصة بك، فإن Aspose.Font تستحق النظر بلا شك.
البدء باستخدام Aspose.Font للغة C++
الطريقة الموصى بها لتثبيت Aspose.Font للغة C++ هي باستخدام NuGet. يرجى استخدام الأمر التالي للحصول على تثبيت سلس.
تثبيت Aspose.Font للغة C++ عبر أمر NuGet
NuGet\Install-Package Aspose.Font.Cpp -Version 23.4.0يمكنك تنزيل المكتبة مباشرةً من صفحة المنتج Aspose.Font للغة C++
تحويل الخطوط إلى صيغ ملفات مدعومة عبر واجهة برمجة التطبيقات C++
إحدى الميزات البارزة لـ Aspose.Font للغة C++ هي قدرتها على تحويل الخطوط بين تنسيقات الملفات المدعومة المختلفة. يصبح هذا مفيدًا جدًا عندما يحتاج مطورو البرمجيات إلى تحويل الخطوط إلى تنسيق محدد متوافق مع بيئتك أو منصتك المستهدفة. تدعم المكتبة تحويلًا سلسًا بين خطوط TrueType و OpenType و CFF و PostScript Type 1 وغيرها، مما يتيح للمطورين تلبية مجموعة واسعة من السيناريوهات. يوضح المثال التالي كيفية تحميل خط من أي من التنسيقات المدعومة مثل TTF وتحويله إلى WOFF2 باستخدام أوامر C++.
تحويل TTF إلى WOFF2 باستخدام واجهة برمجة التطبيقات C++
using namespace System;
using namespace Aspose::Font::Sources;
using namespace Aspose::Font::Ttf;
using namespace Aspose::Font;
// Open TTF font
SharedPtr fontFileDefinition = MakeObject(MakeObject(u"Montserrat-Regular.ttf"));
SharedPtr fontDefinition = MakeObject(FontType::TTF, fontFileDefinition);
SharedPtr font = Font::Open(fontDefinition);
// WOFF2 output settings
SharedPtr outStream = IO::File::Create(u"Montserrat-Regular.woff2");
// Convert TTF to WOFF2
font->SaveToFormat(outStream, FontSavingFormats::WOFF2);
تحميل واستخراج خطوط Type1 عبر واجهة برمجة التطبيقات C++
Aspose.Font for C++ يسمح لمطوري البرمجيات بتحميل Type1 بالإضافة إلى تنسيقات الخطوط المدعومة الأخرى من مصادر مختلفة، مثل الملفات المحلية، التدفقات، أو عناوين URL. يمكن لمطوري البرمجيات تحميل الخطوط بشكل فردي أو دفعة واحدة، مما يجعل من السهل معالجة عدة خطوط في آن واحد. بمجرد التحميل، يمكن للمطورين تحديث خصائص الخطوط وحفظها مرة أخرى بالتنسيق المطلوب أو تصديرها إلى تنسيقات أخرى بسهولة. المثال التالي يوضح كيفية تحميل واستخراج البيانات من خطوط type1 داخل تطبيقات C++.
كيفية تحميل واستخراج البيانات من خطوط Type1 باستخدام واجهة برمجة التطبيقات C++؟
System::String fileName = dataDir + u"courier.pfb";
//Font file name with full path
System::SharedPtr fd = System::MakeObject(Aspose::Font::FontType::Type1, System::MakeObject(u"pfb", System::MakeObject(fileName)));
System::SharedPtr font = System::DynamicCast_noexcept(Aspose::Font::Font::Open(fd));
دعم مقاييس الخطوط والرموز
Aspose.Font for C++ هي مكتبة غنية بالميزات توفر الوصول إلى ثروة من مقاييس الخطوط، بما في ذلك الصعود، النزول، الفجوة بين السطور، ومقاييس أساسية أخرى متنوعة. يمكن لمطوري البرمجيات استرجاع معلومات الحرف مثل قيم Unicode، صناديق الحدود، عرض التقدم، وأكثر. تتيح هذه الميزات للمستخدمين وضع النص بدقة وعرضه داخل تطبيقاتكم. المثال التالي يوضح كيف يمكن لمطوري البرمجيات عرض النص باستخدام الحروف عبر أوامر C++.
كيف يتم عرض النص مع الحروف في تطبيقات C++؟
using Aspose::Font::Glyphs;
using Aspose::Font::Rendering;
using Aspose::Font::RenderingPath;
class GlyphOutlinePainter: IGlyphOutlinePainter
RenderingText::GlyphOutlinePainter::GlyphOutlinePainter(System::SharedPtr path)
{
_path = path;
}
void RenderingText::GlyphOutlinePainter::MoveTo(System::SharedPtr moveTo)
{
_path->CloseFigure();
_currentPoint.set_X((float)moveTo->get_X());
_currentPoint.set_Y((float)moveTo->get_Y());
}
void RenderingText::GlyphOutlinePainter::LineTo(System::SharedPtr lineTo)
{
float x = (float)lineTo->get_X();
float y = (float)lineTo->get_Y();
_path->AddLine(_currentPoint.get_X(), _currentPoint.get_Y(), x, y);
_currentPoint.set_X(x);
_currentPoint.set_Y(y);
}
void RenderingText::GlyphOutlinePainter::CurveTo(System::SharedPtr curveTo)
{
float x3 = (float)curveTo->get_X3();
float y3 = (float)curveTo->get_Y3();
_path->AddBezier(_currentPoint.get_X(), _currentPoint.get_Y(), (float)curveTo->get_X1(), (float)curveTo->get_Y1(), (float)curveTo->get_X2(), (float)curveTo->get_Y2(), x3, y3);
_currentPoint.set_X(x3);
_currentPoint.set_Y(y3);
}
void RenderingText::GlyphOutlinePainter::ClosePath()
{
_path->CloseFigure();
}
System::Object::shared_members_type Aspose::Font::Examples::WorkingWithTrueTypeAndOpenTypeFonts::RenderingText::GlyphOutlinePainter::GetSharedMembers()
{
auto result = System::Object::GetSharedMembers();
result.Add("Aspose::Font::Examples::WorkingWithTrueTypeAndOpenTypeFonts::RenderingText::GlyphOutlinePainter::_path", this->_path); result.Add("Aspose::Font::Examples::WorkingWithTrueTypeAndOpenTypeFonts::RenderingText::GlyphOutlinePainter::_currentPoint", this->_currentPoint);
return result;
}
معالجة الخطوط وتحريرها عبر واجهة برمجة التطبيقات C++
يتيح Aspose.Font للغة C++ للمطورين تحميل خطوط Type1 بالإضافة إلى صيغ الخطوط المدعومة الأخرى من مصادر مختلفة، مثل الملفات المحلية أو التدفقات أو عناوين URL. يمكن للمطورين تحميل الخطوط بشكل فردي أو دفعي، مما يسهل معالجة عدة خطوط في آن واحد. بمجرد التحميل، يمكن للمطورين تحديث خصائص الخطوط وحفظها مرة أخرى بالتنسيق المطلوب أو تصديرها إلى صيغ أخرى بسهولة. يوضح المثال التالي كيفية تحميل واستخراج البيانات من خطوط Type1 داخل تطبيقات C++.
قراءة معلومات مقاييس الخط من خطوط Type1 داخل تطبيقات C++
System::String fileName = dataDir + u"courier.pfb";
//Font file name with full path
System::SharedPtr fd = System::MakeObject(Aspose::Font::FontType::Type1, System::MakeObject(u"pfb", System::MakeObject(fileName)));
System::SharedPtr font = System::DynamicCast_noexcept(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);
