Laden Sie Schriftdateien aus einem Byte-Array

C++-API-Lösung zum Laden von TTF-, WOFF-, EOT-, Type 1- und CFF-Schriftarten aus einem MemoryStream.

 

Die Aspose.Font API-Lösung bietet Ihnen umfangreiche Funktionen für die Arbeit mit Schriftarten, einschließlich Konvertierung, Glyph-Manipulation, Erkennung lateinischer Symbole und vielem mehr. Aber der erste Schritt bei der Font-Manipulation ist das Laden der Font-Dateien, um sie später zu verwenden.

In diesem Artikel wird beschrieben, wie Schriftartdateien aus Streams geladen werden. Ausführlichere Informationen zum Laden von Schriftarten finden Sie jedoch im Artikel How to Load Files? . Dort finden Sie zahlreiche C++-Codebeispiele und verstehen die Objekte und Parameter, die zum Laden von Schriftarten erforderlich sind.

Die API unterstützt mehrere Schriftartformate, einschließlich TrueType (einzelne Schriftart), TrueType (Schriftartensammlung), Web Open Font Format, Web Open Font Format Version 2.0, Embedded OpenType, Adobe Type 1-Schriftart (pfa, pfb, afm, pfm) und Kompaktes Schriftformat. Die bereitgestellten Code-Snippets zeigen, wie eine True Type Font (TTF)-Datei aus einem Stream geladen wird.

Wie wir aus Wikipedia erfahren können, steht TTF für TrueType Font und ist ein Dateiformat für skalierbare Computerschriften. Es wurde ursprünglich von Apple Computer entwickelt, ist aber heute sowohl auf Mac- als auch auf Windows-Betriebssystemen weit verbreitet. TTF-Dateien enthalten Anweisungen zum Rendern jedes Zeichens einer Schriftart in verschiedenen Schriftgrößen und -stilen, und sie können einfach in der Größe geändert und in verschiedenen Anwendungen ohne Qualitätsverlust verwendet werden. TTF-Schriftarten werden häufig für die digitale Typografie verwendet und werden häufig im Webdesign, in der Textverarbeitung und im Desktop-Publishing verwendet.

Zum Laden von Schriftarten benötigen Sie die Aspose.Font für C++-API, eine leistungsstarke, benutzerfreundliche API zur Dokumentbearbeitung und -konvertierung für die C++-Plattform. Öffnen Sie zum Abrufen der API den NuGet-Paket-Manager, suchen Sie nach Aspose.Font und installieren Sie es. Sie können auch den folgenden Befehl in der Paket-Manager-Konsole verwenden.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Laden Sie TTF aus Byte-Array/MemoryStream mit C++

Dieses Code-Snippet ist in C++ geschrieben und zeigt, wie eine Datei mit TrueType-Schriftarten (TTF) mithilfe der Aspose.Font-API geladen wird. Der Code führt die folgenden Schritte aus:

  1. Erstellen Sie den Pfad zur Schriftartdatei. DataDir ist hier eine vordefinierte Variable, die den Pfad zu dem Verzeichnis enthält, in dem sich die Schriftartdatei Montserrat-Regular.ttf befindet. Die Path.Combine-Methode kombiniert die beiden Pfade, um den vollständigen Pfad zur Schriftartdatei zu erstellen.
  2. Laden Sie die Font-Binärdaten in ein Byte-Array. Die Methode File.ReadAllBytes() liest den Inhalt der Schriftartdatei und gibt die Daten als Byte-Array zurück.
  3. Initialisieren Sie ein FontDefinition -Objekt. FontType.TTF gibt an, dass die Schriftartdatei eine TrueType-Schriftart (.ttf) und die neue ByteContentStreamSource (fontBytes) erstellt ein ByteContentStreamSource-Objekt basierend auf den binären Schriftartdaten, die im fontBytes-Array gespeichert sind.
  4. Laden Sie die Schriftart. Die Methode Font.Open() nimmt das Objekt FontDefinition als Parameter und gibt die geladene Schriftart zurück , die dann für weitere Manipulationen verwendet werden können.

C++ Code zum Laden von Schriftarten aus dem Stream

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



FAQ

1. Was sind die Parameter, um Schriftarten programmgesteuert zu laden?

Für das korrekte Laden von Schriftarten müssen Sie zwei Schlüsselparameter kennen. Sie sind Schriftformat und Speicherung.

2. Wo befinden sich Schriftarten auf meinem Computer?

Um die auf Ihrem Computer verfügbaren Schriftarten anzuzeigen, gehen Sie in das Verzeichnis C:>Windows>Fonts. Dort können Sie Ihre Schriftarten verwalten.

3. Wie lade ich eine Schriftart aus einem Stream?

Stellen Sie das Bad-Array mit FontFileDefinition ein und erstellen Sie das Objekt mit der Methode Open(). Geben Sie das Schriftformat an. Beenden Sie das Laden mit der Methode Aspose.Font.Font.Open().