1. Produkte
  2.   Font
  3.   Node.js
  4.   OpenType.js
 
  

Kostenlose JavaScript-Bibliothek zum Parsen und Schreiben von Schriften

Open-Source-JavaScript-Bibliothek, die das Parsen, Lesen und Schreiben von TrueType- oder OpenType-Schriften ermöglicht. Sie unterstützt die Schriftverwaltung, Glyphenmetriken und Textlayout in JS-Anwendungen.

Im Bereich der Software-Webentwicklung und digitalen Typografie kann die Handhabung von Schriftdateien und das Erstellen nahtloser Textdarstellungen eine anspruchsvolle Aufgabe sein. Die Arbeit mit OpenType-Schriften kann jedoch besonders herausfordernd sein, insbesondere wenn es darum geht, auf ihre erweiterten typografischen Funktionen zuzugreifen. Hier kommt OpenType.js ins Spiel – eine revolutionäre Open-Source-Bibliothek, die die Arbeit mit OpenType-Schriften im Browser erleichtert. Einer der wichtigsten Vorteile von OpenType.js ist seine Fähigkeit, den Prozess der Arbeit mit OpenType-Schriften zu vereinfachen. Im Gegensatz zu anderen Bibliotheken, die umfangreiches Fachwissen über Schriftechnologie erfordern, bietet OpenType.js eine unkomplizierte API, die den Einstieg erleichtert.

OpenType.js ist eine JavaScript-Bibliothek, die eine einfache und intuitive API zum Zugriff auf die erweiterten typografischen Funktionen von OpenType-Schriften bereitstellt. Mit OpenType.js können Softwareentwickler leicht Funktionen wie Ligaturen, alternative Glyphen, variable Fonts und Ähnliches nutzen, wodurch sie komplexe und anspruchsvolle Typografie-Designs erstellen können. Zusätzlich zum Parsen und Manipulieren vorhandener Schriften unterstützt opentype.js auch das Erstellen neuer Schriftdateien von Grund auf. Diese Funktion ist für Entwickler wertvoll, die benutzerdefinierte Schriften programmgesteuert generieren möchten. Da es sich um eine JavaScript-Bibliothek handelt, kann opentype.js sowohl in clientseitigen als auch serverseitigen Umgebungen verwendet werden, was sie zu einer flexiblen Wahl für verschiedene Projekte macht. Insgesamt ist es eine leistungsstarke und vielseitige Bibliothek, die eine einfache und intuitive Möglichkeit bietet, mit OpenType-Schriften im Browser zu arbeiten.

Previous Next

Erste Schritte mit Opentype.js

Die empfohlene Methode, OpenType.js zu installieren, ist die Verwendung von NPM. Bitte verwenden Sie den folgenden Befehl für eine reibungslose Installation.

Opentype.js mit npm installieren

 npm install opentype.js

Sie können es auch manuell installieren; laden Sie die neuesten Release‑Dateien direkt aus dem GitHub-Repository herunter.

Schrift-Parsing in Node.js-Anwendungen

Eines der Kernmerkmale von OpenType.js ist seine Fähigkeit, OpenType- und TrueType-Schriftdateien mit nur wenigen Zeilen JavaScript-Code zu parsen. Dies ermöglicht Softwareentwicklern, die Struktur einer Schrift zu lesen und zu verstehen, einschließlich ihrer Glyphen, Kerning-Informationen und anderer wesentlicher Daten. Im folgenden Beispiel wird die Schriftart Roboto Regular aus einer TTF-Datei geladen. Die Bibliothek parst die Schrift und stellt ihre Daten für weitere Manipulationen zur Verfügung.

Wie lädt und parsed man eine Schrift aus einer TTF-Datei in Node.js??

const opentype = require('opentype.js');

// Load a font from a file
opentype.load('fonts/Roboto-Regular.ttf', function(err, font) {
    if (err) {
        console.error('Font could not be loaded:', err);
    } else {
        console.log('Font loaded successfully:', font);
        console.log('Number of glyphs:', font.numGlyphs);
    }
});

Zugriff & Manipulation von Schriftglyphen in Node.js

Die Open-Source-Node.js-Bibliothek OpenType.js ermöglicht es Softwareentwicklern, innerhalb von Node.js-Anwendungen auf einzelne Glyphen einer Schrift zuzugreifen und diese zu manipulieren. Glyphen sind die visuellen Darstellungen von Zeichen in einer Schrift. Mit dieser Funktion können Sie Glyphenpfade extrahieren, sie ändern oder sogar neue Glyphen erstellen. Hier ist ein Code‑Snippet, das eine Schrift lädt, die Glyphe für das Zeichen "A" abruft und dann die Glyphe um das 1,5‑fache ihrer ursprünglichen Größe skaliert. Die Methode toPathData() konvertiert den Pfad der Glyphe in SVG‑Pfaddaten, die für das Rendern oder weitere Manipulationen verwendet werden können.

Wie lädt man eine Schrift und modifiziert Glyphen in Node.js-Anwendungen?

const opentype = require('opentype.js');

// Load a font and modify a glyph
opentype.load('fonts/Roboto-Regular.ttf', function(err, font) {
    if (err) {
        console.error('Font could not be loaded:', err);
    } else {
        const glyph = font.charToGlyph('A');
        console.log('Original Glyph Path:', glyph.path.toPathData());

        // Modify the glyph path (e.g., scale it)
        glyph.path.scale(1.5);
        console.log('Scaled Glyph Path:', glyph.path.toPathData());
    }
});

Arbeiten mit Schrift-Tabellen über die Node.js-Bibliothek

OpenType.js gibt Entwicklern Zugriff auf die zugrunde liegenden Font-Tabellen, die detaillierte Informationen über das Design und die Metriken der Schriftart speichern. Dies kann besonders nützlich für fortgeschrittene Schriftmanipulationen oder Analysen sein. Das Code‑Snippet im folgenden Beispiel zeigt, wie man auf bestimmte Font‑Tabellen zugreift, wie z. B. die head‑Tabelle (die die Header‑Informationen der Schrift enthält) und die hhea‑Tabelle (die horizontale Header‑Metriken enthält). Diese Tabellen liefern wesentliche Details, die für eine präzise Kontrolle über das Rendern und Layout von Schriften verwendet werden können.

Wie greift man mit einer Node.js-Bibliothek auf bestimmte Schrifttabellen und die darin enthaltene Schrift zu?

const opentype = require('opentype.js');

opentype.load('path/to/font.ttf', function(err, font) {
  if (err) {
    console.error('Font could not be loaded: ' + err);
  } else {
    // Access the 'head' table (font header)
    const headTable = font.tables.head;
    console.log('Units per Em: ' + headTable.unitsPerEm);

    // Access the 'hhea' table (horizontal header)
    const hheaTable = font.tables.hhea;
    console.log('Ascender: ' + hheaTable.ascender);
    console.log('Descender: ' + hheaTable.descender);
  }
});
 Deutsch