TTF- und OTF-Schriftarten in Java laden und speichern

Verwalten, untersuchen, modifizieren und speichern Sie TrueType- (.ttf) und OpenType- (.otf) Schriftarten mühelos in Ihren Java-Anwendungen. Aspose.Font für Java bietet eine robuste, hochperformante API zum Laden von Schriftdateien aus lokalem Speicher oder Bytestreams, Extrahieren von Metadaten und Speichern aktualisierter Schriftstrukturen – ganz ohne Abhängigkeiten von nativen Schrift-Engines des Betriebssystems.

 

TrueType und OpenType sind die Standard-Schriftformate auf modernen Betriebssystemen, Webanwendungen und Workflows im digitalen Publishing. Die programmatische Schriftverarbeitung ermöglicht zentrale Unternehmensfunktionen:

  • Dynamische Schriftdateimanipulation: - TTF/OTF-Schriftarten direkt von der Festplatte, aus Datenbankstreams oder Speicherpuffern lesen.
  • Schriftinspektion und Metadatenextraktion: - Zugriff auf Schriftheaderdaten, Zeichentabellen, Glyphendefinitionen und Lizenzinformationen.
  • Plattformübergreifende Kompatibilität: - Ausführung von Schriftverarbeitungs-Workloads nahtlos unter Linux, Windows, macOS und Cloud-Bereitstellungsumgebungen.
  • Keine nativen Abhängigkeiten: - Beseitigt die Abhängigkeit von betriebssystemspezifischen Schriftinstallationsskripten oder GUI-Grafiktreibern (wie GDI oder X11).

Kernfunktionen für das Rendering

Laden aus Streams und von der Festplatte - Öffnen Sie TTF- und OTF-Dateien mit FileSystemStreamSource oder ByteContentStreamSource.

Zugriff auf Metadaten und Metriken - Untersuchen Sie Glyphenmetriken, Zeichenbreiten (Advance Widths), Bounding Boxes und Schriftnamens-Tabellen.

Exportieren und Speichern von Schriftdaten - Ändern Sie Schriftparameter und serialisieren Sie aktualisierte Schriftobjekte direkt wieder auf die Festplatte oder in Streams.

Optionen zur Formatkonvertierung - Konvertieren Sie TrueType-/OpenType-Schriftarten in moderne Webformate wie WOFF, WOFF2 oder SVG.

So laden Sie eine TrueType-Schriftart in Java

Das Laden einer TrueType- oder OpenType-Schriftart erfordert das Instanziieren einer FontDefinition mit dem entsprechenden FontType und das Öffnen der Schriftart über die Font-Factory-Klasse.

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

So speichern Sie eine TrueType-Schriftart in Java

Nachdem eine Schriftart in den Speicher geladen und Daten extrahiert oder modifiziert wurden, können Sie die Schriftart wieder auf dem lokalen Festplattenspeicher speichern oder in einen Ausgabe-Bytestream schreiben.

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

Installation und Einrichtung

Binden Sie Aspose.Font für Java über Maven in Ihr Projekt ein.

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>

Häufig gestellte Fragen

1. Kann ich OpenType-Schriftarten (.otf) mit denselben Methoden wie TrueType-Schriftarten laden?

Ja. Aspose.Font for Java unterstützt sowohl TrueType- (.ttf) als auch OpenType- (.otf) Schriftartformate über die TtfFont- und FontDefinition-Architektur.

2. Erfordert das Laden und Speichern von Schriftarten die Installation der Schriftarten auf dem Host-Betriebssystem?

Nein. Aspose.Font for Java liest Schriftartstrukturen direkt als Dateistreams oder Bytepuffer. Es arbeitet unabhängig und erfordert keine Installation der Schriftart in Systemverzeichnissen.

3. Kann ich TTF- oder OTF-Schriftarten in webtaugliche Formate wie WOFF oder SVG konvertieren?

Ja. Aspose.Font for Java bietet integrierte Konvertierungsfunktionen, um geladene TrueType- und OpenType-Schriftarten in WOFF-, WOFF2-, SVG- und CFF-Formate umzuwandeln.