Carica e salva font TTF e OTF in Java

Gestisci, ispeziona, modifica e salva facilmente i font TrueType (.ttf) e OpenType (.otf) nelle tue applicazioni Java. Aspose.Font per Java offre un’API robusta e ad alte prestazioni per caricare file di font da memoria locale o stream di byte, estrarre metadati e salvare strutture di font aggiornate, il tutto senza dipendenze dai motori di font nativi del sistema operativo.

 

TrueType e OpenType sono i formati di font standard nei moderni sistemi operativi, nelle applicazioni web e nei flussi di lavoro dell’editoria digitale. L’elaborazione programmatica dei font abilita funzionalità aziendali fondamentali:

  • Manipolazione dinamica dei file di font: - Leggi i font TTF/OTF direttamente dal disco, da stream di database o buffer di memoria.
  • Ispezione dei font ed estrazione dei metadati: - Accedi ai dati dell’intestazione del font, alle mappe dei caratteri, alle definizioni dei glifi e alle informazioni sulle licenze.
  • Compatibilità multipiattaforma: - Esegui carichi di lavoro di elaborazione dei font senza problemi su ambienti Linux, Windows, macOS e distribuzioni cloud.
  • Zero dipendenze native: - Elimina la dipendenza da script di installazione dei font specifici del sistema operativo o da driver grafici della GUI (come GDI o X11).

Funzionalità di rendering principali

Caricamento da stream e disco - Apri file TTF e OTF utilizzando FileSystemStreamSource o ByteContentStreamSource.

Accesso a metadati e metriche - Ispeziona metriche dei glifi, larghezze di avanzamento (advance widths), riquadri di delimitazione (bounding boxes) e tabelle di denominazione dei font.

Esportazione e salvataggio dei dati dei font - Modifica i parametri dei font e serializza gli oggetti font aggiornati direttamente su disco o stream.

Opzioni di conversione del formato - Converti font TrueType/OpenType in formati web moderni come WOFF, WOFF2 o SVG.

Come caricare un font TrueType in Java

Il caricamento di un font TrueType o OpenType richiede l’istanziazione di un FontDefinition con il FontType appropriato e l’apertura del font tramite la 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());
    }
}

Come salvare un font TrueType in Java

Dopo aver caricato un font in memoria ed aver eseguito l’estrazione o la modifica dei dati, puoi salvare nuovamente il font nella memoria disco locale o scriverlo in uno stream di byte di output.

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

Installazione e configurazione

Includi Aspose.Font per Java nel tuo progetto tramite 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>

Domande frequenti

1. Posso caricare i font OpenType (.otf) utilizzando gli stessi metodi dei font TrueType?

Sì. Aspose.Font for Java supporta sia i formati di font TrueType (.ttf) che OpenType (.otf) tramite l’architettura TtfFont e FontDefinition.

2. Il caricamento e il salvataggio dei font richiedono l’installazione dei font sul sistema operativo host?

No. Aspose.Font for Java legge le strutture dei font direttamente come flussi di file o buffer di byte. Funziona in modo indipendente senza richiedere l’installazione del font nelle directory di sistema.

3. Posso convertire i font TTF o OTF in formati pronti per il Web come WOFF o SVG?

Sì. Aspose.Font for Java offre funzionalità di conversione integrate per trasformare i font TrueType e OpenType caricati nei formati WOFF, WOFF2, SVG e CFF.