Carica file di font da un array di byte

Soluzione API C++ per caricare font TTF, WOFF, EOT, Type 1 e CFF da un MemoryStream.

 

La soluzione Aspose.Font API ti offre ampie capacità per lavorare con i font, inclusa la conversione, la manipolazione dei glifi, il rilevamento di simboli latini e molto altro. Ma il primo passo nella manipolazione dei font è caricare i file di font per usarli successivamente.

Questo articolo spiega come caricare file di font da stream, ma per informazioni più dettagliate sul caricamento dei font, fai riferimento all’articolo Come caricare i file? . Lì troverai numerosi esempi di codice C++ e comprenderai gli oggetti e i parametri necessari per il caricamento dei font.

L'API supporta diversi formati di font, tra cui TrueType (font singolo), TrueType (collezione di font), Web Open Font Format, Web Open Font Format versione 2.0, Embedded OpenType, font Adobe Type 1 (pfa, pfb, afm, pfm) e Compact Font Format. Le snippet di codice fornite mostrano come caricare un file True Type Font (TTF) da uno stream.

Come possiamo apprendere da Wikipedia , TTF sta per TrueType Font ed è un formato di file per font scalabili per computer. È stato originariamente sviluppato da Apple Computer, ma ora è ampiamente utilizzato sia su sistemi operativi Mac che Windows. I file TTF contengono istruzioni su come renderizzare ogni carattere di un font a diverse dimensioni e stili, e possono essere facilmente ridimensionati e usati in diverse applicazioni senza perdere qualità. I font TTF sono ampiamente usati per la tipografia digitale e sono comunemente impiegati nel web design, nell’elaborazione testi e nella pubblicazione desktop.

Per caricare i font, avrai bisogno dell'Aspose.Font per API C++, che è una potente e facile da usare API di manipolazione e conversione dei documenti per la piattaforma C++. Per ottenere l'API, apri il gestore pacchetti NuGet e cerca Aspose.Font, quindi installalo. Puoi anche usare il seguente comando nella Console del Gestore Pacchetti.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Carica TTF da array di byte/MemoryStream usando C++

Questo frammento di codice è scritto in C++ e dimostra come caricare un file TrueType Font (TTF) usando l’Aspose.Font API. Il codice esegue i seguenti passaggi:

  1. Costruisci il percorso al file di font. Qui, DataDir è una variabile predefinita che contiene il percorso della directory dove si trova il file di font Montserrat-Regular.ttf. Il metodo Path.Combine combina i due percorsi per creare il percorso completo al file di font.
  2. Carica i dati binari del font in un array di byte. Il metodo File.ReadAllBytes() legge il contenuto del file di font e restituisce i dati come array di byte.
  3. Inizializza un oggetto FontDefinition . FontType.TTF indica che il file di font è un TrueType Font(.ttf) e il nuovo ByteContentStreamSource (fontBytes) crea un oggetto ByteContentStreamSource basato sui dati binari del font memorizzati nell’array fontBytes.
  4. Carica il font. Il metodo Font.Open() accetta l’oggetto FontDefinition come parametro e restituisce il font caricato, che può quindi essere usato per ulteriori manipolazioni.

Codice C++ per caricare i font dallo 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);