Carregar arquivos de fonte de uma matriz de bytes

Solução de API C++ para carregar fontes TTF, WOFF, EOT, Type 1 e CFF de um MemoryStream.

 

A Aspose.Font API Solution oferece amplos recursos para trabalhar com fontes, incluindo conversão, manipulação de glifos, detecção de símbolos latinos e muito mais. Mas a primeira etapa na manipulação de fontes é carregar os arquivos de fontes para usá-los posteriormente.

Este artigo descreve como carregar arquivos de fonte de streams, mas para informações mais detalhadas sobre carregamento de fonte, consulte o artigo How to Load Files? . Lá você encontrará vários exemplos de código C++ e entenderá os objetos e parâmetros necessários para o carregamento de fontes.

A API oferece suporte a vários formatos de fonte, incluindo TrueType (fonte única), TrueType (coleção de fontes), Web Open Font Format, Web Open Font Format versão 2.0, Embedded OpenType, fonte Adobe Type 1 (pfa, pfb, afm, pfm) e Formato de fonte compacto. Os trechos de código fornecidos demonstram como carregar um arquivo True Type Font (TTF) de um fluxo.

Como podemos aprender na Wikipedia TTF significa TrueType Font e é um formato de arquivo para fontes de computador escalonáveis. Foi originalmente desenvolvido pela Apple Computer, mas agora é amplamente usado nos sistemas operacionais Mac e Windows. Os arquivos TTF contêm instruções sobre como renderizar cada caractere de uma fonte em diferentes tamanhos e estilos de fonte, e podem ser facilmente redimensionados e usados ​​em diferentes aplicativos sem perda de qualidade. As fontes TTF são amplamente usadas para tipografia digital e são comumente usadas em web design, processamento de texto e editoração eletrônica.

Para carregar fontes, você precisará da API Aspose.Font para C++, que é uma API de conversão e manipulação de documentos poderosa e fácil de usar para a plataforma C++. Para obter a API, abra o gerenciador de pacotes NuGet, procure por Aspose.Font e instale-o. Você também pode usar o seguinte comando no console do gerenciador de pacotes.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Carregar TTF da matriz de bytes/MemoryStream usando C++

Este trecho de código foi escrito em C++ e demonstra como carregar um arquivo TrueType Font (TTF) usando a API Aspose.Font. O código executa as seguintes etapas:

  1. Construa o caminho para o arquivo de fonte. Aqui, DataDir é uma variável predefinida contendo o caminho para o diretório onde o arquivo de fonte Montserrat-Regular.ttf está localizado. O método Path.Combine combina os dois caminhos para criar o caminho completo para o arquivo de fonte.
  2. Carregue os dados binários da fonte em uma matriz de bytes. O método File.ReadAllBytes() lê o conteúdo do arquivo de fonte e retorna os dados como uma matriz de bytes.
  3. Inicialize um objeto FontDefinition . FontType.TTF indica que o arquivo de fonte é TrueType Font(.ttf) e o novo ByteContentStreamSource (fontBytes) cria um objeto ByteContentStreamSource com base nos dados binários da fonte armazenados na matriz fontBytes.
  4. Carregue a fonte. O método Font.Open() toma o objeto FontDefinition como parâmetro e retorna a fonte carregada , que pode então ser usado para outras manipulações.

Código C++ para carregar fontes do 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);



Perguntas frequentes

1. Quais são os parâmetros para carregar fontes programaticamente?

Para o carregamento correto da fonte, você precisa conhecer dois parâmetros-chave. Eles são formato de fonte e armazenamento.

2. Onde estão localizadas as fontes no meu computador?

Para ver as fontes disponíveis em seu computador acesse o diretório C:>Windows>Fontes. Lá você poderá gerenciar suas fontes.

3. Como carregar uma fonte de um stream?

Defina a matriz de banho usando FontFileDefinition e crie o objeto por meio do método Open(). Especifique o formato da fonte. Termine o carregamento usando o método Aspose.Font.Font.Open().