Carregar e salvar fontes TTF e OTF em Java

Gerencie, inspecione, modifique e salve fontes TrueType (.ttf) e OpenType (.otf) sem esforço nas suas aplicações Java. Aspose.Font para Java oferece uma API robusta e de alto desempenho para carregar arquivos de fontes do armazenamento local ou de fluxos de bytes, extrair metadados e salvar estruturas de fontes atualizadas — tudo sem dependências nativas do mecanismo de fontes do sistema operativo.

 

TrueType e OpenType são os formatos de fonte padrão nos sistemas operativos modernos, aplicações web e fluxos de trabalho de publicação digital. O processamento programático de fontes habilita capacidades empresariais essenciais:

  • Manipulação dinâmica de arquivos de fonte: - Leia fontes TTF/OTF diretamente do disco, fluxos de banco de dados ou buffers de memória.
  • Inspeção de fontes e extração de metadados: - Acesse dados de cabeçalho de fonte, mapas de caracteres, definições de glifos e informações de licenciamento.
  • Compatibilidade multiplataforma: - Execute cargas de trabalho de processamento de fontes de forma contínua em ambientes Linux, Windows, macOS e implantações em nuvem.
  • Zero dependências nativas: - Elimine a dependência de scripts de instalação de fontes específicos do SO ou drivers gráficos GUI (como GDI ou X11).

Capacidades de renderização principais

Carregamento de fluxo e disco - Abra arquivos TTF e OTF usando FileSystemStreamSource ou ByteContentStreamSource.

Acesso a metadados e métricas - Inspecione métricas de glifos, larguras de avanço (advance widths), caixas delimitadoras (bounding boxes) e tabelas de nomes de fontes.

Exportação e salvamento de dados de fontes - Modifique os parâmetros de fontes e serialize os objetos de fonte atualizados diretamente de volta ao disco ou fluxos.

Opções de conversão de formato - Converta fontes TrueType/OpenType em formatos web modernos como WOFF, WOFF2 ou SVG.

Como carregar uma fonte TrueType em Java

Carregar uma fonte TrueType ou OpenType requer instanciar um FontDefinition com o FontType apropriado e abrir a fonte através da classe factory Font.

import com.aspose.font.FileSystemStreamSource;
import com.aspose.font.Font;
import com.aspose.font.FontDefinition;
import com.aspose.font.FontFileDefinition;
import com.aspose.font.FontType;
import com.aspose.font.TtfFont;

public class LoadTrueTypeFont {
    public static void main(String[] args) {
        // Define path to the TrueType font file (.ttf / .otf)
        String fontFilePath = "path/to/Montserrat-Regular.ttf";

        // Initialize FontDefinition for TTF font type
        FontDefinition fontDef = new FontDefinition(
            FontType.TTF, 
            new FontFileDefinition("ttf", new FileSystemStreamSource(fontFilePath))
        );

        // Open and load the TtfFont object
        TtfFont font = (TtfFont) Font.open(fontDef);

        // Access basic font properties
        System.out.println("Font Name: " + font.getFontName());
        System.out.println("Glyph Count: " + font.getNumGlyphs());
    }
}

Como salvar uma fonte TrueType em Java

Após carregar uma fonte na memória e realizar a extração ou modificação de dados, pode salvar a fonte de volta para o armazenamento em disco local ou gravá-la num fluxo de bytes de saída.

import com.aspose.font.ByteContentStreamSource;
import com.aspose.font.Font;
import com.aspose.font.FontDefinition;
import com.aspose.font.FontFileDefinition;
import com.aspose.font.FontType;
import com.aspose.font.TtfFont;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class SaveTrueTypeFont {
    public static void main(String[] args) throws IOException {
        // Read font file into byte array stream
        String inputPath = "path/to/source.ttf";
        byte[] fontBytes = Files.readAllBytes(Paths.get(inputPath));

        // Define font source using ByteContentStreamSource
        FontDefinition fontDef = new FontDefinition(
            FontType.TTF, 
            new FontFileDefinition("ttf", new ByteContentStreamSource(fontBytes))
        );

        // Open TTF font object
        TtfFont font = (TtfFont) Font.open(fontDef);

        // Perform font processing or inspection here...

        // Save the updated TtfFont object back to disk
        String outputPath = "path/to/output_saved.ttf";
        font.save(outputPath);

        System.out.println("TrueType font successfully saved to: " + outputPath);
    }
}

Instalação e Configuração

Inclua Aspose.Font para Java no seu projeto via Maven.

Package Manager Console Command

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-font</artifactId>
    <version>Latest</version>
</dependency>

FAQ

1. Posso carregar fontes OpenType (.otf) usando os mesmos métodos que as fontes TrueType?

Sim. O Aspose.Font for Java oferece suporte aos formatos de fonte TrueType (.ttf) e OpenType (.otf) por meio da arquitetura TtfFont e FontDefinition.

2. O carregamento e o salvamento de fontes exigem a instalação das fontes no sistema operacional do host?

Não. O Aspose.Font for Java lê as estruturas das fontes diretamente como fluxos de arquivos ou buffers de bytes. Ele funciona de forma independente, sem exigir que a fonte seja instalada nos diretórios do sistema.

3. Posso converter fontes TTF ou OTF em formatos prontos para a web, como WOFF ou SVG?

Sim. O Aspose.Font for Java fornece recursos integrados de conversão para transformar fontes TrueType e OpenType carregadas nos formatos WOFF, WOFF2, SVG e CFF.