1. उत्पादों
  2.   Font
  3.   C++
  4.   Aspose.Font for C++

Aspose.Font for C++

 
 

फ़ॉन्ट्स को पढ़ने, सहेजने और परिवर्तित करने के लिए C++ फ़ॉन्ट API

C++ लाइब्रेरी विभिन्न फ़ॉन्ट फ़ॉर्मैट जैसे TrueType, WOFF, EOT, OpenType, CFF, और Type1 को लोड, पढ़ने, सहेजने और परिवर्तित करने की अनुमति देती है, जो C++ आधारित अनुप्रयोगों में उपयोग होती है।

Aspose.Font for C++ एक बहुत ही शक्तिशाली टूल है जो फ़ॉन्ट हैंडलिंग को सरल बनाता है और सॉफ़्टवेयर डेवलपर्स और प्रोग्रामर्स के लिए सुविधाओं का व्यापक सेट प्रदान करता है। यह C++ डेवलपर्स को विभिन्न फ़ॉन्ट फ़ॉर्मैट्स के साथ काम करने और फ़ॉन्ट‑संबंधित कार्यों की विस्तृत श्रृंखला करने में सक्षम बनाता है। यह सॉफ़्टवेयर डेवलपर्स को विभिन्न फ़ॉर्मैट्स में फ़ॉन्ट फ़ाइलों को लोड, जेनरेट, एडिट और कनवर्ट करने की सुविधा देता है, जैसे TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT, और कई अन्य। API किसी भी बाहरी निर्भरताओं के बिना आपके फ़ॉन्ट‑संबंधित कार्यों को अगले स्तर पर ले जा सकता है।

Aspose.Font for C++ एक फीचर‑समृद्ध लाइब्रेरी है जो C++ डेवलपर्स के लिए व्यापक फ़ॉन्ट हेरफेर क्षमताएँ प्रदान करती है। यह लाइब्रेरी फ़ॉन्ट संचालन की विस्तृत श्रृंखला का समर्थन करती है, जिसमें फ़ॉन्ट मेटाडेटा निकालना, डिस्क या स्ट्रीम से फ़ॉन्ट फ़ाइलें लोड करना, ग्लिफ़ जानकारी तक पहुंचना, फ़ॉन्ट को विभिन्न फ़ॉर्मैट में परिवर्तित करना, फ़ॉन्ट जानकारी पढ़ना, फ़ॉन्ट फ़ाइलों को अपडेट करना और उन्हें डिस्क पर सहेजना, फ़ॉन्ट फ़ाइलों से मीट्रिक जानकारी पढ़ना, फ़ॉन्ट ग्लिफ़ का उपयोग करके टेक्स्ट रेंडर करना, TrueType फ़ॉन्ट को मर्ज करना और बहुत कुछ शामिल है। यह 32‑बिट और 64‑बिट दोनों ऑपरेटिंग सिस्टम का समर्थन करती है।

Aspose.Font for C++ उन्नत टाइपोग्राफ़िक क्षमताएँ प्रदान करता है, जिसमें लिगेचर का हैंडलिंग, संदर्भात्मक और वैकल्पिक ग्लिफ़ प्रतिस्थापन, तथा उन्नत टेक्स्ट लेआउट विकल्प शामिल हैं। ये सुविधाएँ विशेष रूप से जटिल लिपियों या उन भाषाओं के साथ काम करते समय उपयोगी होती हैं जिन्हें परिष्कृत टेक्स्ट शैपिंग और रेंडरिंग की आवश्यकता होती है। यह API क्रॉस‑प्लेटफ़ॉर्म है और उपयोगकर्ताओं को इसे विभिन्न ऑपरेटिंग सिस्टम जैसे Windows, Linux और macOS पर सहजता से उपयोग करने की अनुमति देती है। यदि आप अपने C++ अनुप्रयोगों में फ़ॉन्ट हेरफेर क्षमताओं को बढ़ाना चाहते हैं, तो Aspose.Font निस्संदेह विचार करने योग्य है।

Previous Next

Aspose.Font for C++ के साथ शुरूआत

Aspose.Font for C++ को स्थापित करने का अनुशंसित तरीका NuGet का उपयोग करना है। सुगम स्थापना के लिए कृपया निम्नलिखित कमांड का उपयोग करें।

NuGet कमांड के द्वारा Aspose.Font for C++ स्थापित करें

NuGet\Install-Package Aspose.Font.Cpp -Version 23.4.0

आप लाइब्रेरी को सीधे Aspose.Font for C++ उत्पाद पृष्ठ से डाउनलोड कर सकते हैं।

C++ API के माध्यम से समर्थित फ़ाइल फ़ॉर्मेट में फ़ॉन्ट रूपांतरण

Aspose.Font for C++ की प्रमुख विशेषताओं में से एक इसकी विभिन्न समर्थित फ़ाइल फ़ॉर्मेट्स के बीच फ़ॉन्ट्स को परिवर्तित करने की क्षमता है। यह तब बहुत सुविधाजनक हो जाता है जब सॉफ़्टवेयर डेवलपर्स को अपने लक्षित वातावरण या प्लेटफ़ॉर्म के साथ संगत किसी विशिष्ट फ़ॉर्मेट में फ़ॉन्ट्स को बदलने की आवश्यकता होती है। लाइब्रेरी TrueType, OpenType, CFF, PostScript Type 1 फ़ॉन्ट्स और अधिक के बीच सहज परिवर्तन का समर्थन करती है, जिससे डेवलपर्स विभिन्न परिदृश्यों को संभाल सकते हैं। निम्नलिखित उदाहरण दिखाता है कि कैसे TTF जैसे किसी भी समर्थित फ़ॉर्मेट से फ़ॉन्ट लोड करके C++ कमांड्स का उपयोग करके इसे WOFF2 में परिवर्तित किया जाए।

C++ API का उपयोग करके TTF को WOFF2 में परिवर्तित करें

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);

C++ API के माध्यम से Type1 फ़ॉन्ट लोड और निकालें

Aspose.Font for C++ सॉफ़्टवेयर डेवलपर्स को Type1 और अन्य समर्थित फ़ॉन्ट फ़ॉर्मैट विभिन्न स्रोतों से लोड करने की अनुमति देता है, जैसे स्थानीय फ़ाइलें, स्ट्रीम या URL। डेवलपर्स फ़ॉन्ट को व्यक्तिगत रूप से या बल्क में लोड कर सकते हैं, जिससे कई फ़ॉन्ट को एक साथ प्रोसेस करना आसान हो जाता है। एक बार लोड होने के बाद, डेवलपर्स फ़ॉन्ट की प्रॉपर्टीज़ को अपडेट कर सकते हैं और उन्हें इच्छित फ़ॉर्मैट में वापस सहेज सकते हैं या आसानी से अन्य फ़ॉर्मैट में एक्सपोर्ट कर सकते हैं। निम्नलिखित उदाहरण दिखाता है कि C++ एप्लिकेशन में Type1 फ़ॉन्ट को कैसे लोड और डेटा निकालें।

C++ API का उपयोग करके Type1 फ़ॉन्ट से डेटा कैसे लोड और निकालें?

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++ एक बहुत ही फीचर-समृद्ध लाइब्रेरी है जो फ़ॉन्ट मीट्रिक्स की विस्तृत जानकारी तक पहुँच प्रदान करती है, जिसमें एसेन्ट, डिसेंट, लाइन गैप और विभिन्न अन्य आवश्यक माप शामिल हैं। सॉफ़्टवेयर डेवलपर्स यूनिकोड वैल्यूज़, बाउंडिंग बॉक्स, एडवांस विड्थ आदि जैसी ग्लिफ़ जानकारी प्राप्त कर सकते हैं। ये सुविधाएँ उपयोगकर्ताओं को आपके एप्लिकेशन में टेक्स्ट को सटीक रूप से पोज़िशन और रेंडर करने में सक्षम बनाती हैं। निम्नलिखित उदाहरण दिखाता है कि सॉफ़्टवेयर डेवलपर्स 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++ API के माध्यम से फ़ॉन्ट हेरफेर और संपादन

Aspose.Font for C++ सॉफ़्टवेयर डेवलपर्स को Type1 और अन्य समर्थित फ़ॉन्ट फ़ॉर्मेट विभिन्न स्रोतों से लोड करने की अनुमति देता है, जैसे स्थानीय फ़ाइलें, स्ट्रीम या URL। सॉफ़्टवेयर डेवलपर्स फ़ॉन्ट को व्यक्तिगत रूप से या एक साथ कई फ़ॉन्ट लोड कर सकते हैं, जिससे कई फ़ॉन्ट को एक साथ प्रोसेस करना आसान हो जाता है। एक बार लोड होने के बाद, डेवलपर्स फ़ॉन्ट की प्रॉपर्टीज़ को अपडेट कर सकते हैं और उन्हें इच्छित फ़ॉर्मेट में वापस सहेज सकते हैं या आसानी से अन्य फ़ॉर्मेट में एक्सपोर्ट कर सकते हैं। निम्नलिखित उदाहरण दिखाता है कि C++ एप्लिकेशन में Type1 फ़ॉन्ट को कैसे लोड और डेटा निकालें।

C++ एप्लिकेशन में Type1 फ़ॉन्ट्स से फ़ॉन्ट मेट्रिक्स जानकारी पढ़ें

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);

 हिन्दी