Carica file di caratteri da un array di byte

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

 

La soluzione API Aspose.Font offre ampie funzionalità per lavorare con i caratteri, inclusa la conversione, la manipolazione dei glifi, il rilevamento dei simboli latini e molti altri. Ma il primo passo nella manipolazione dei caratteri è caricare i file dei caratteri per usarli in seguito.

Questo articolo illustra come caricare i file dei font dagli stream, ma per informazioni più dettagliate sul caricamento dei font, fare 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 caratteri.

L'API supporta diversi formati di carattere, tra cui TrueType (carattere singolo), TrueType (raccolta di caratteri), Web Open Font Format, Web Open Font Format versione 2.0, Embedded OpenType, Adobe Type 1 font (pfa, pfb, afm, pfm) e Formato carattere compatto. I frammenti di codice forniti mostrano come caricare un file TTF (True Type Font) da un flusso.

Come possiamo apprendere da Wikipedia TTF è l’acronimo di TrueType Font ed è un formato di file per font per computer scalabili. È stato originariamente sviluppato da Apple Computer, ma ora è ampiamente utilizzato su entrambi i sistemi operativi Mac e Windows. I file TTF contengono istruzioni su come eseguire il rendering di ciascun carattere di un carattere con dimensioni e stili di carattere diversi e possono essere facilmente ridimensionati e utilizzati in diverse applicazioni senza perdere qualità. I caratteri TTF sono ampiamente utilizzati per la tipografia digitale e sono comunemente usati nel web design, nell’elaborazione di testi e nel desktop publishing.

Per caricare i caratteri, avrai bisogno dell'API Aspose.Font per C++, che è un'API di manipolazione e conversione dei documenti potente e facile da usare per la piattaforma C++. Per ottenere l'API, apri il gestore pacchetti NuGet e cerca Aspose.Font, quindi installalo. È inoltre possibile utilizzare il seguente comando nella console di Package Manager.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Carica TTF dall'array di byte/MemoryStream utilizzando C++

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

  1. Costruisci il percorso del file del carattere. Qui, DataDir è una variabile predefinita che contiene il percorso della directory in cui si trova il file di font Montserrat-Regular.ttf. Il metodo Path.Combine combina i due percorsi per creare il percorso completo del file di carattere.
  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 del font è un font TrueType(.ttf) e il nuovo ByteContentStreamSource (fontBytes) crea un oggetto ByteContentStreamSource basato sui dati binari del carattere archiviati nell’array fontBytes.
  4. Carica il carattere. Il metodo Font.Open() prende l’oggetto FontDefinition come parametro e restituisce il carattere caricato , che può quindi essere utilizzato per ulteriori manipolazioni.

Codice C++ per il caricamento dei caratteri 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);



FAQ

1. Quali sono i parametri per caricare i caratteri a livello di codice?

Per un corretto caricamento dei font, è necessario conoscere due parametri chiave. Sono il formato e l’archiviazione dei caratteri.

2. Dove si trovano i font sul mio computer?

Per vedere i font disponibili sul tuo computer vai alla directory C:>Windows>Fonts. Lì sarai in grado di gestire i tuoi caratteri.

3. Come caricare un font da uno stream?

Impostare l’array del bagno utilizzando FontFileDefinition e creare l’oggetto mediante il metodo Open(). Specificare il formato del carattere. Completare il caricamento utilizzando il metodo Aspose.Font.Font.Open().