<p align="center">
  <img src="src/FontWerk/Assets/jessa-studio-kompaktlogo.png" alt="Jessa Studio" width="360">
</p>

<h1 align="center">FontWerk</h1>

<p align="center">
  Desktop-Anwendung zur Verwaltung, Vorschau, Aktivierung und Prüfung von Schriftdateien.<br>
  Desktop application for managing, previewing, activating, and checking font files.
</p>

<p align="center">
  <strong>Version 1.1.0</strong>
</p>

<p align="center">
  <a href="#deutsch">Deutsch</a> · <a href="#english">English</a>
</p>

---

# Deutsch

## Überblick

FontWerk ist eine Windows-Anwendung zur Verwaltung, Vorschau und Prüfung von Schriftdateien. Die Anwendung hilft dabei, installierte und externe Schriften übersichtlich zu organisieren, projektbezogen zusammenzustellen, temporär zu aktivieren und auf Zeichenabdeckung zu prüfen.

FontWerk richtet sich an Nutzerinnen und Nutzer, die regelmäßig mit vielen Schriften arbeiten, zum Beispiel in Layout, Druckvorstufe, PDF-Erstellung, Mailing-/Lettershop-Prozessen oder bei der Verwaltung von Kundenschriften.

Externe Schriftdateien bleiben an ihrem ursprünglichen Speicherort, zum Beispiel in einem zentralen Schriftordner auf einem Netzlaufwerk. FontWerk speichert die organisatorischen Zuordnungen und übernimmt die Dateien nicht in eine eigene dauerhafte Schriftbibliothek. Für die zuverlässige WPF-Vorschau können jedoch temporäre Cache-Kopien im Windows-Temp-Verzeichnis entstehen.

## Funktionen

- Anzeige installierter Windows-Schriften, Benutzer-Schriften und externer Schriftdateien
- Einbindung zusätzlicher Schriftordner, auch von Netzlaufwerken
- vollständiger rekursiver Scan normaler Unterordner mit sichtbarer Ladeanzeige und fehlertolerantem Überspringen nicht erreichbarer Verzeichnisse
- virtuelle Schriftordner und Projekte zur Organisation von Schriften
- Mehrfachzuordnung: eine Schrift kann in mehreren Projekten verwendet werden
- Projekt-Metadaten wie Projektname, Kunde, Sprachen, Notizen und Farbmarkierung
- Farb-Tags mit 32 abgestimmten Farben; neue virtuelle Ordner erhalten standardmäßig eine hellgraue Markierung
- Drag & Drop von Schriften in virtuelle Ordner/Projekte
- Drag & Drop zum Hinzufügen externer Schriftordner und Schriftdateien
- gezieltes Entfernen einzeln registrierter Schriften aus FontWerk, ohne die physische Datei zu löschen
- temporäre Aktivierung und Deaktivierung externer Schriften ohne Windows-Neustart
- direkter Power-Schalter je Schriftzeile für besonders schnelle Aktivierung und Deaktivierung
- Warnungen bei möglichen Namens- und Versionskonflikten beim Aktivieren
- projektbezogene Aktivierungssets
- Auto-Aktivierung ausgewählter Projekte beim Programmstart
- Filter für Quelle, Aktivierungsstatus und Projektzuordnung
- Textprobe mit auswählbaren Sprach- und Unicode-Zeichenbereichen
- echte Zeichenabdeckungsprüfung über die Schriftdatei
- Prüfung einzelner Schriften, Textproben, Zeichenbereiche und ganzer Projekte
- Anzeige fehlender Zeichen inklusive Unicode-Wert
- rote Hervorhebung fehlender Zeichen direkt in der dargestellten Textprobe
- Dubletten- und Konfliktanalyse für identische Dateien, Namenskonflikte, PostScript-Namen und Versionsunterschiede
- Details zur ausgewählten Schriftdatei
- Musterblatt mit A4-Vorschau, Druckfunktion und PDF-Ausgabe
- mehrseitiges Projektblatt mit Textprobe, Zeichenabdeckung, Konflikthinweisen und Detaildaten für jede Projektschrift
- Export der zu einem Projekt gehörenden Schriftdateien in einen frei wählbaren Zielordner
- optionale Minimierung in den Windows-Infobereich neben der Uhr
- optionaler automatischer Start mit Windows
- Benutzeroberfläche auf Deutsch, Englisch, Französisch, Spanisch, Italienisch, Japanisch und vereinfachtem Chinesisch
- System-, Hell- und Dunkelmodus
- sofortige Live-Vorschau von Sprache und Theme direkt in den Einstellungen; die Sprachen werden dabei stabil in ihrer jeweiligen Eigenbezeichnung angezeigt
- Speicherung von Sprache, Theme, Fenstergröße und Fensterposition
- lokale Protokollierung und Sicherung lokaler Daten vor Datenbankmigrationen
- manuelle Update-Prüfung über ein validiertes Online-Manifest

## Updates

Über die Schaltfläche **Updates** im Hauptfenster prüft FontWerk das fest konfigurierte Manifest unter `https://jessa.studio/apps/fontwerk/stable.json`. Die Prüfung vergleicht die installierte Version mit der aktuell angebotenen Version und validiert unter anderem Anwendungsname, Update-Kanal, Mindestversion, Veröffentlichungsdatum und HTTPS-Links.

FontWerk lädt oder installiert Updates nicht automatisch. Wenn eine neue Version verfügbar ist, können die Downloadseite und die Versionshinweise im Standardbrowser geöffnet werden.

## Unterstützte Schriftformate

FontWerk unterstützt derzeit einzelne TrueType- und OpenType-Schriftdateien in den Formaten `.ttf` und `.otf`. TrueType Collections (`.ttc`) und OpenType Collections (`.otc`) werden in der aktuellen Version nicht unterstützt und daher nicht eingelesen oder verwaltet.

## Erste Schritte

1. Starten Sie FontWerk.
2. Fügen Sie bei Bedarf zusätzliche Schriftordner hinzu.
3. Legen Sie im Bereich **Schriftordner** ein Projekt oder einen virtuellen Ordner an.
4. Ziehen Sie Schriften aus der Liste **Schriften** per Drag & Drop in den gewünschten Ordner.
5. Aktivieren Sie bei Bedarf einzelne Schriften oder ein ganzes Projekt.
6. Nutzen Sie **Textprobe**, **Zeichenabdeckung**, **Analyse** und **Musterblatt**, um Schriften zu prüfen.

Eine ausführlichere Bedienungsanleitung befindet sich in [`USER-GUIDE.md`](USER-GUIDE.md).

Versionsänderungen sind getrennt dokumentiert:

- [`CHANGELOG.md`](CHANGELOG.md) enthält nutzerrelevante Release Notes.
- [`DEVELOPMENT-CHANGELOG.md`](DEVELOPMENT-CHANGELOG.md) enthält technische Änderungen und die Historie interner Entwicklungsversionen.

## Schriftordner und Projekte

Die Ordnerstruktur in FontWerk ist virtuell. Wenn eine Schrift in einen Ordner oder ein Projekt gezogen wird, wird die echte Schriftdatei nicht verschoben, kopiert oder gelöscht. FontWerk speichert nur die Zuordnung zwischen Projekt und Schriftdatei.

Eine Schrift kann mehreren virtuellen Ordnern gleichzeitig zugeordnet werden. Das ist besonders nützlich, wenn dieselbe Schrift in mehreren Kundenprojekten oder Mailings verwendet wird. Zuordnungen beziehen sich auf den vollständigen Dateipfad. Ist eine externe Quelle vorübergehend nicht erreichbar oder wird sie aus den Einstellungen entfernt, bleibt die Zuordnung gespeichert, wird aber nicht mehr im sichtbaren Ordnerzähler berücksichtigt.

Das Schrift-Kontextmenü unterscheidet eindeutig zwischen **Aus virtuellem Ordner entfernen** und **Aus FontWerk entfernen**. Die erste Aktion löscht nur die aktuelle Projektzuordnung. Die zweite Aktion steht ausschließlich für einzeln registrierte externe Schriftdateien zur Verfügung: FontWerk deaktiviert die Schrift bei Bedarf, entfernt alle virtuellen Zuordnungen und löscht ihren Eintrag unter **Einzelne externe Schriftdateien**. Die physische Schriftdatei bleibt in beiden Fällen unverändert. Schriften aus rekursiv eingebundenen Ordnerquellen können nicht einzeln aus FontWerk entfernt werden, da sie beim nächsten Scan erneut erkannt würden.

Für Projekte können zusätzliche Informationen gepflegt werden:

- Projektname
- Kunde
- Sprachen
- Notizen
- Farbmarkierung aus einer Palette mit 32 Farben; neue Ordner beginnen mit einer hellgrauen Markierung
- Auto-Aktivierung beim Programmstart

Der feste Eintrag **Alle Schriften** ist mit einem kleinen ausgefüllten Kreis gekennzeichnet, wird bei einem Sprachwechsel sofort übersetzt und bleibt dadurch unabhängig von den Farb-Tags eigener Ordner sofort erkennbar.

## Externe Schriftquellen

Externe Schriftordner können über die Einstellungen, über das Kontextmenü oder per Drag & Drop hinzugefügt werden. Die Schriftdateien bleiben dabei am ursprünglichen Speicherort. Das ist besonders sinnvoll, wenn mehrere Personen auf einen gemeinsamen Schriftordner auf einem Netzlaufwerk zugreifen.

Wird eine einzelne externe Schriftdatei direkt auf ein Projekt oder bei ausgewähltem virtuellem Ordner auf das Hauptfenster gezogen, registriert FontWerk ausschließlich den vollständigen Pfad dieser Datei und ordnet die Schrift anschließend dem virtuellen Ordner zu. Der Elternordner wird dabei nicht als Quelle übernommen und nicht rekursiv durchsucht. Einzeldateiquellen können in den Einstellungen getrennt von den zusätzlichen Schriftordnern bearbeitet oder entfernt werden.

Beim Programmstart baut FontWerk die sichtbare Schriftliste aus den Windows-Schriftquellen und allen konfigurierten externen Quellen vollständig neu auf. Umfangreiche lokale oder Netzwerkquellen können den Start daher verlängern. Über **Schriften neu laden** kann derselbe vollständige Scan später manuell erneut gestartet werden.

Beim Einlesen durchsucht FontWerk normale Unterordner vollständig und ohne festgelegte maximale Verschachtelungstiefe. Ein Fehler oder fehlender Zugriff in einem Unterordner beendet nicht mehr den gesamten Scan; bereits gefundene Schriften bleiben erhalten und nur der betroffene Teilbaum wird ausgelassen. Verzeichnisverknüpfungen und andere Reparse Points werden nicht verfolgt, um Schleifen und unbeabsichtigte Scans außerhalb der gewählten Quelle zu verhindern. Währenddessen erscheint direkt in der Schriftliste eine Bitte-warten-Anzeige.

Als Ordnerquelle sollte möglichst ein gezielter Schriftordner gewählt werden. Ganze Laufwerke, der Desktop oder umfangreiche Dokumentverzeichnisse funktionieren technisch, können wegen des vollständigen rekursiven Scans jedoch sehr lange benötigen. Für einzelne Dateien an solchen Speicherorten sollte stattdessen die Datei selbst per Drag & Drop registriert werden.

## Temporäre Schriftaktivierung

FontWerk kann externe Schriften temporär aktivieren. Dadurch werden sie für die aktuelle Windows-Sitzung verfügbar, ohne dauerhaft in Windows installiert zu werden. Über den Power-Schalter links in jeder Schriftzeile lässt sich eine externe Schrift mit einem Klick aktivieren oder deaktivieren. Während der Windows-Schriftoperation ersetzt ein kleiner Spinner sowohl den Power-Schalter der betroffenen Zeile als auch die Aktivieren-/Deaktivieren-Aktionen in der Toolbar. Die bisherigen Aktionen in der Toolbar und im Kontextmenü bleiben ebenfalls verfügbar. Installierte Windows-Schriften werden als aktiv angezeigt, können über diesen Schalter jedoch nicht deaktiviert werden.

Wichtig:

- Die Schriftdateien werden nicht verschoben oder kopiert.
- Nach einem Windows-Neustart sind temporär aktivierte Schriften grundsätzlich nicht mehr aktiv.
- FontWerk kann ausgewählte Schriften oder Projekte beim Programmstart erneut aktivieren. Sobald mindestens eine Schrift zu verarbeiten ist und das Hauptfenster sichtbar ist, zeigt ein modaler Fortschrittsdialog den aktuellen Dateinamen und Bearbeitungsstand. Dasselbe gilt beim Beenden, wenn FontWerk temporär aktivierte Schriften automatisch deaktivieren soll. Bei einem unsichtbaren Windows-Autostart direkt in den Infobereich läuft die Wiederherstellung ohne versteckten modalen Dialog im Hintergrund.
- Manche Anwendungen aktualisieren ihre Schriftliste nicht sofort. In solchen Fällen muss die betroffene Anwendung neu gestartet oder ihre Schriftliste aktualisiert werden.

Beim Aktivieren warnt FontWerk vor möglichen Namens- oder Versionskonflikten mit bereits installierten oder aktiven Schriften. Beim Deaktivieren eines Projekts bleiben gemeinsam genutzte Schriften aktiv, wenn sie noch von einem anderen aktiven Projekt benötigt werden. Aktivierungs- und Deaktivierungsvorgänge laufen außerhalb des UI-Threads; bei Stapelvorgängen wird Windows nur einmal über die geänderte Schriftliste informiert. Drag & Drop einzelner Dateien wartet auf eine noch laufende Aktivierungsoperation, liest nur die betroffene Datei neu ein und wiederholt kurzzeitig blockierte Lesezugriffe. Dadurch werden unnötige Vollscans und typische kurze Sperren durch Explorer, Windows oder Sicherheitssoftware besser abgefangen.

## Zeichenbereich, Textprobe und Zeichenabdeckung

Im Tab **Textprobe** können vorbereitete Zeichenbereiche und Sprachproben ausgewählt werden. Dazu gehören viele europäische Sprachen, Unicode-Blöcke, Akzentbereiche, phonetische Zeichen, mathematische Zeichen und Symbole.

FontWerk kennzeichnet fehlende Zeichen direkt in der dargestellten Textprobe rot. Die Zeichen bleiben durch den Windows-Schriftfallback sichtbar, sind dadurch aber eindeutig als nicht in der gewählten Schrift enthalten erkennbar.

FontWerk kann außerdem prüfen, ob eine Schrift die Zeichen einer Textprobe oder eines ausgewählten Zeichenbereichs wirklich enthält. Das Ergebnis zeigt:

- Anzahl vorhandener Zeichen
- Anzahl geprüfter Zeichen
- Prozentwert der Abdeckung
- fehlende Zeichen inklusive Unicode-Wert

Die Prüfung kann auch für ein ganzes Projekt ausgeführt werden. Dabei prüft FontWerk alle dem Projekt zugeordneten Schriften inklusive Unterordnern.

## Projektblatt

Über das Kontextmenü eines virtuellen Schriftordners kann **Projektblatt** geöffnet werden. FontWerk führt dabei automatisch eine frische Projektprüfung gegen den aktuell ausgewählten Zeichenbereich aus und erzeugt anschließend für jede Schrift des Projekts eine eigene A4-Seite.

Jede Seite enthält:

- die aktuelle Textprobe in der jeweiligen Schrift, einschließlich roter Kennzeichnung fehlender Zeichen
- das Ergebnis der Zeichenabdeckungsprüfung und eine kompakte Liste fehlender Unicode-Zeichen
- Hinweise auf erkannte Dubletten, Namens-, PostScript- oder Versionskonflikte
- die im Detailbereich verfügbaren Schriftinformationen wie Familie, Schnitt, Stil, Gewicht, Version, Hersteller, Designer, PostScript-Name, SHA-256-Wert und Dateipfad
- Projektname, Kunde, Sprachen, Notizen, Prüfbereich, Datum und Seitenzahl

Die Vorschau besitzt eigene Schaltflächen zum Drucken und zum Speichern eines mehrseitigen PDF-Dokuments. Das Musterblatt für die visuelle Einzeldarstellung einer Schrift bleibt als separate Funktion erhalten.

## Musterblatt

Der Tab **Musterblatt** zeigt eine strukturierte Ansicht der ausgewählten Schrift. Enthalten sind unter anderem:

- Schriftname und Metadaten
- Lateinisch-Basis-Zeichen
- Zahlen
- Satzzeichen
- Währungszeichen
- aktueller Zeichenbereich
- frei editierbarer Mustertext
- einstellbare Schriftgröße

Fehlende Zeichen werden in allen Zeichen- und Textbereichen rot hervorgehoben, bleiben durch den Windows-Schriftfallback aber sichtbar. Die Bereiche 1 bis 5 befinden sich auf der ersten Seite. Der frei editierbare Mustertext beginnt immer auf Seite 2 und wird bei Bedarf automatisch auf weitere A4-Seiten verteilt.

Die Seiteneinteilung nutzt den verfügbaren A4-Bereich möglichst vollständig und erzeugt keine zusätzliche Seite nur für ein einzelnes Schlusswort, wenn der komplette Resttext noch auf die vorherige Seite passt. Die mehrseitige Vorschau besitzt eine Seitennavigation. Beim Drucken und beim PDF-Export werden sämtliche Seiten ausgegeben. Nach dem Schließen der Vorschau meldet die Statusleiste, wie viele Seiten erzeugt wurden.

## Dubletten- und Konfliktanalyse

Der Tab **Analyse** hilft beim Erkennen typischer Schriftprobleme:

- identische Schriftdateien an mehreren Speicherorten
- gleiche Familien- und Schnittnamen bei unterschiedlichen Dateien
- gleiche PostScript-Namen bei unterschiedlichen Dateien
- unterschiedliche Versionsangaben innerhalb derselben Schriftidentität

Die Analyse dient als Warn- und Entscheidungshilfe, wenn mehrere ähnliche oder gleichnamige Schriften vorhanden sind. Externe Schriftdateien können nach einer ausdrücklichen Sicherheitsabfrage direkt über das Papierkorb-Symbol **physisch vom Datenträger gelöscht** werden. Ist eine solche Schrift temporär aktiv, deaktiviert FontWerk sie vor dem Löschen automatisch. Diese Aktion ist bewusst nicht mit **Aus FontWerk entfernen** zu verwechseln; der gleichnamige Kontextmenübefehl entfernt nur FontWerks Registrierung und lässt die Datei bestehen.

Installierte Windows- und Benutzer-Schriften werden bewusst nicht direkt gelöscht. Ihre Entfernung muss über die Windows-Schrifteinstellungen erfolgen, damit die Windows-Registrierung und die systemweite Schriftverwaltung konsistent bleiben.

## Projektschriften exportieren

Über das Kontextmenü eines Schriftordners oder Projekts können die zugeordneten Schriftdateien in einen frei wählbaren Zielordner exportiert werden. Dabei werden die Originaldateien nicht verändert. FontWerk kopiert die Dateien lediglich an den gewählten Ort.

Wenn mehrere Dateien denselben Namen haben, erzeugt FontWerk eindeutige Dateinamen, damit keine vorhandene Datei versehentlich überschrieben wird.

## Windows-Infobereich und Autostart

FontWerk kann beim Minimieren in den Windows-Infobereich neben der Uhr verschoben werden. Das Fenster verschwindet dann aus der normalen Taskleiste und kann per Doppelklick auf das Symbol wiederhergestellt werden.

Das Kontextmenü des Symbols enthält:

- Wiederherstellen
- Über
- Beenden

Vor dem tatsächlichen Beenden fragt FontWerk unabhängig davon, ob das Hauptfenster oder das Tray-Kontextmenü verwendet wurde, noch einmal zur Sicherheit nach. **Nein** ist dabei die vorausgewählte Aktion.

Zusätzlich kann FontWerk automatisch mit Windows gestartet werden. Je nach Einstellung startet die Anwendung im Infobereich oder minimiert in der normalen Taskleiste.

## Systemvoraussetzungen

- Windows 10 oder Windows 11
- je nach Veröffentlichungsart die passende .NET-10-Desktop-Runtime
- Zugriff auf die verwendeten Schriftordner und Netzlaufwerke

## Lokale Daten

FontWerk speichert benutzerbezogene Einstellungen und Projektzuordnungen lokal im Benutzerprofil:

```text
%APPDATA%\Jessa Studio\FontWerk\
```

Dort befinden sich unter anderem Einstellungen, lokale Projekt-/Zuordnungsdaten, Logdateien und Sicherungen vor Datenbankmigrationen.

Für die Darstellung externer Schriften in WPF legt FontWerk bei Bedarf temporäre Vorschaukopien unter folgendem Pfad an:

```text
%TEMP%\Jessa Studio\FontWerk\PreviewCache\
```

Diese Kopien sind kein dauerhafter Schriftkatalog und werden nur für die Vorschau verwendet. Veraltete Cache-Einträge versucht FontWerk beim Start automatisch zu bereinigen.

Protokolldateien liegen unter:

```text
%APPDATA%\Jessa Studio\FontWerk\Logs\
```

FontWerk überträgt diese Daten nicht automatisch an externe Dienste.

## Wichtige Hinweise

- Virtuelle Ordner in FontWerk sind keine echten Dateisystemordner.
- Das Einsortieren einer Schrift in ein Projekt verschiebt die Originaldatei nicht.
- Temporär aktivierte Schriften können von Windows oder anderen Anwendungen gesperrt bleiben, solange sie aktiv sind.
- Wenn eine Schriftdatei ersetzt oder gelöscht werden soll, sollte sie vorher deaktiviert werden.
- Über das Kontextmenü einer Schrift kann eine Dateisperre geprüft werden.
- Die Zeichenabdeckung prüft, ob Zeichen in der Schrift vorhanden sind. Sie bewertet nicht automatisch die typografische Qualität, Zeichenform oder OpenType-Feinheiten.
- Vor dem produktiven Einsatz sollten Ergebnisse, exportierte Dateien und erzeugte PDFs sorgfältig geprüft werden.

## Haftungsausschluss

FontWerk wird ohne Gewährleistung bereitgestellt. Die Nutzung erfolgt vollständig auf eigene Gefahr. Jessa Studio übernimmt keinerlei Haftung für Schäden, Datenverluste, Betriebsunterbrechungen oder sonstige Folgen, die direkt oder indirekt aus der Nutzung des Programms entstehen.

## Lizenz

FontWerk ist proprietäre Software. Nutzung, Weitergabe, Änderung und Verwertung richten sich nach den Bedingungen in [LICENSE](LICENSE.txt).

Enthaltene Bibliotheken von Drittanbietern unterliegen ihren jeweils eigenen Lizenzbedingungen. Weitere Informationen befinden sich in `THIRD-PARTY-NOTICES.txt`.

## Links

- Website: <https://jessa.studio>

---

# English

## Overview

FontWerk is a Windows application for managing, previewing, and checking font files. It helps organize installed and external fonts, group them by project, temporarily activate them, and verify character coverage.

FontWerk is intended for users who regularly work with many fonts, for example in layout, prepress, PDF production, mailing/lettershop workflows, or customer font management.

External font files remain at their original location, such as a shared font folder on a network drive. FontWerk stores the organizational assignments and does not import the files into a permanent FontWerk font library. Temporary cache copies may nevertheless be created in the Windows temporary directory to provide reliable WPF previews.

## Features

- display of installed Windows fonts, user fonts, and external font files
- adding additional font folders, including network folders
- virtual font folders and projects for organizing fonts
- multiple assignments: one font can be used in several projects
- project metadata such as project name, customer, languages, notes, and color tag
- color tags with 32 coordinated colors; new virtual folders receive a light-gray tag by default
- drag and drop of fonts into virtual folders/projects
- drag and drop for adding external font folders and font files
- targeted removal of individually registered fonts from FontWerk without deleting the physical file
- temporary activation and deactivation of external fonts without restarting Windows
- direct power button in each font row for especially fast activation and deactivation
- warnings for possible name and version conflicts during activation
- project-based activation sets
- automatic activation of selected projects when the application starts
- filters for source, activation status, and project assignment
- text sample with selectable language and Unicode character ranges
- real character coverage checks based on the font file
- checks for individual fonts, text samples, character ranges, and entire projects
- display of missing characters including Unicode values
- red highlighting of missing characters directly in the rendered text sample
- duplicate and conflict analysis for identical files, name conflicts, PostScript names, and version differences
- details for the selected font file
- specimen sheet with A4 preview, printing, and PDF export
- multi-page project sheet with text samples, character coverage, conflict notes, and detail data for every project font
- export of font files assigned to a project into a freely selectable target folder
- optional minimization to the Windows notification area near the clock
- optional automatic start with Windows
- user interface in German, English, French, Spanish, Italian, Japanese, and Simplified Chinese
- system, light, and dark themes
- immediate live preview of language and theme directly in Settings, with every language shown by its stable native name
- persistence of language, theme, window size, and window position
- local logging and backup of local data before database migrations
- manual update checks through a validated online manifest

## Updates

The **Updates** button in the main window checks the fixed manifest at `https://jessa.studio/apps/fontwerk/stable.json`. The check compares the installed version with the currently available version and validates the application name, update channel, minimum version, release date, and HTTPS links, among other fields.

FontWerk does not download or install updates automatically. When a new version is available, the download page and release notes can be opened in the default browser.

## Supported font formats

FontWerk currently supports individual TrueType and OpenType font files in the `.ttf` and `.otf` formats. TrueType Collections (`.ttc`) and OpenType Collections (`.otc`) are not supported in the current version and are therefore not scanned or managed.

## First steps

1. Start FontWerk.
2. Add additional font folders if needed.
3. Create a project or virtual folder in the **Font folders** area.
4. Drag fonts from the **Fonts** list into the desired folder.
5. Activate individual fonts or a whole project if needed.
6. Use **Text sample**, **Character coverage**, **Analysis**, and **Specimen sheet** to check fonts.

A more detailed user guide is available in [`USER-GUIDE.md`](USER-GUIDE.md).

Version changes are documented separately:

- [`CHANGELOG.md`](CHANGELOG.md) contains user-facing release notes.
- [`DEVELOPMENT-CHANGELOG.md`](DEVELOPMENT-CHANGELOG.md) contains technical changes and the history of internal development versions.

## Font folders and projects

The folder structure in FontWerk is virtual. When a font is dragged into a folder or project, the actual font file is not moved, copied, or deleted. FontWerk stores only the assignment between the project and the font file.

A font can be assigned to multiple virtual folders at the same time. This is useful when the same font is used in several customer projects or mailings. Assignments refer to the complete file path. If an external source is temporarily unavailable or removed from Settings, the assignment is retained but no longer included in the visible folder counter.

The font context menu clearly distinguishes **Remove from virtual folder** from **Remove from FontWerk**. The first action removes only the current project assignment. The second action is available only for individually registered external font files: FontWerk deactivates the font when necessary, removes all virtual-folder assignments, and deletes its entry from **Individual external font files**. The physical font file remains unchanged in both cases. Fonts discovered through recursively registered folder sources cannot be removed individually from FontWerk because a later scan would discover them again.

Projects can store additional information:

- project name
- customer
- languages
- notes
- color tag from a 32-color palette; new folders start with a light-gray tag
- automatic activation at application startup

The fixed **All fonts** entry uses a small filled circle, updates immediately with the selected interface language, and remains recognizable independently of custom folder color tags.

## External font sources

External font folders can be added through Settings, the context menu, or drag and drop. Font files remain at their original location. This is especially useful when several people access a shared font folder on a network drive.

When an individual external font file is dragged directly onto a project, or onto the main window while a virtual folder is selected, FontWerk registers only the full path of that file and assigns the font to the virtual folder. Its parent directory is not added as a source and is not scanned recursively. Individual file sources can be edited or removed separately from additional font folders in Settings.

At startup, FontWerk completely rebuilds the visible font list from the Windows font sources and every configured external source. Large local or network sources can therefore extend startup time. The same complete scan can be started manually later with **Reload fonts**.

During discovery, FontWerk scans normal subfolders completely and without a fixed maximum nesting depth. An error or missing permission in one subfolder no longer aborts the whole source scan; fonts already found are retained and only the affected subtree is skipped. Directory links and other reparse points are not followed to prevent cycles and unintended scans outside the selected source. A prominent please-wait indicator is displayed directly in the font list while scanning.

Folder sources should preferably point to dedicated font folders. Whole drives, the desktop, or large document trees work technically but may take a very long time because the scan is deliberately recursive and complete. For individual files stored in such locations, register the file itself by drag and drop instead.

## Temporary font activation

FontWerk can temporarily activate external fonts. This makes them available for the current Windows session without installing them permanently in Windows. The power button at the left of each font row activates or deactivates an external font with one click. During the Windows font operation, a small spinner replaces both the affected row button and the toolbar activation controls. The existing toolbar and context-menu actions remain available as well. Installed Windows fonts are shown as active but cannot be deactivated with this button.

Important:

- Font files are not moved or copied.
- After a Windows restart, temporarily activated fonts are generally no longer active.
- FontWerk can reactivate selected fonts or projects when the application starts. Whenever at least one font must be processed and the main window is visible, a modal progress dialog shows the current file and progress. The same dialog is shown before exit when FontWerk is configured to deactivate temporary fonts automatically. When Windows autostart launches FontWerk invisibly in the notification area, restoration runs in the background without opening a hidden modal dialog.
- Some applications do not refresh their font list immediately. In such cases, the affected application may need to be restarted or its font list refreshed.

During activation, FontWerk warns about possible name or version conflicts with fonts that are already installed or active. When deactivating a project, shared fonts remain active if they are still required by another active project. Activation and deactivation run outside the UI thread, and batch operations notify Windows about the changed font list only once. Dropping an individual file waits for any current activation operation, reloads only that file, and briefly retries transient read failures. This avoids unnecessary full scans and better handles short locks caused by Explorer, Windows, or security software.

## Character ranges, text sample, and character coverage

The **Text sample** tab provides predefined character ranges and language samples. These include many European languages, Unicode blocks, accent ranges, phonetic characters, mathematical characters, and symbols. Missing characters are highlighted in red directly in the rendered sample while remaining visible through Windows font fallback.

FontWerk can check whether a font really contains the characters from a text sample or selected character range. The result shows:

- number of available characters
- number of checked characters
- coverage percentage
- missing characters including Unicode values

The check can also be run for an entire project. In that case, FontWerk checks all fonts assigned to the project, including subfolders.

## Project sheet

The **Project sheet** command is available from the context menu of a virtual font folder. FontWerk first performs a fresh project check against the currently selected character range and then creates a separate A4 page for every font in the project.

Each page includes:

- the current text sample rendered in the respective font, including red highlighting of missing characters
- the character-coverage result and a compact list of missing Unicode characters
- notes about detected duplicate, name, PostScript, or version conflicts
- the font information available in the Details tab, such as family, face, style, weight, version, manufacturer, designer, PostScript name, SHA-256 hash, and file path
- project name, customer, languages, notes, coverage scope, date, and page number

The preview window includes dedicated buttons for printing and saving a multi-page PDF document. The specimen sheet for visually presenting an individual font remains available as a separate feature.

## Specimen sheet

The **Specimen sheet** tab shows a structured view of the selected font. It includes, among other things:

- font name and metadata
- basic Latin characters
- numbers
- punctuation
- currency symbols
- current character range
- freely editable sample text
- adjustable font size

Missing characters are highlighted in red throughout all character and text sections while remaining visible through Windows font fallback. Sections 1 through 5 remain on the first page. The freely editable sample text always starts on page 2 and automatically continues on further A4 pages when required.

The multi-page preview provides page navigation. Printing and PDF export include every page. After the preview closes, the status bar reports how many pages were generated.

## Duplicate and conflict analysis

The **Analysis** tab helps identify common font issues:

- identical font files in multiple locations
- same family and style names in different files
- same PostScript names in different files
- different version information within the same font identity

The analysis is intended as a warning and decision aid when several similar or identically named fonts are present. After explicit confirmation, the trash button can **physically delete an external font file from disk**. If such a font is temporarily active, FontWerk deactivates it before deletion. This action must not be confused with **Remove from FontWerk**, which only unregisters the font from FontWerk and leaves the file in place.

Installed Windows and user fonts are deliberately not deleted directly. They must be removed through Windows font settings so the Windows registry and system-wide font management remain consistent.

## Exporting project fonts

The context menu of a font folder or project can export the assigned font files to a freely selectable target folder. The original files are not modified. FontWerk only copies the files to the selected location.

If multiple files have the same name, FontWerk creates unique file names so that no existing file is overwritten accidentally.

## Windows notification area and autostart

FontWerk can be moved to the Windows notification area near the clock when minimized. The window then disappears from the regular taskbar and can be restored by double-clicking the icon.

The icon context menu contains:

- Restore
- About
- Exit

Before actually exiting, FontWerk asks for confirmation regardless of whether the main window or the notification-area menu was used. **No** is the preselected action.

FontWerk can also start automatically with Windows. Depending on the settings, the application starts in the notification area or minimized in the normal taskbar.

## System requirements

- Windows 10 or Windows 11
- the appropriate .NET 10 Desktop Runtime, depending on the published package
- access to the used font folders and network drives

## Local data

FontWerk stores per-user settings and project assignments locally in the user's profile:

```text
%APPDATA%\Jessa Studio\FontWerk\
```

This includes settings, local project and assignment data, log files, and backups created before database migrations.

When required for displaying external fonts in WPF, FontWerk creates temporary preview copies below:

```text
%TEMP%\Jessa Studio\FontWerk\PreviewCache\
```

These copies are not a persistent font catalogue and are used for previews only. FontWerk attempts to clean up stale cache entries automatically during startup.

Log files are stored below:

```text
%APPDATA%\Jessa Studio\FontWerk\Logs\
```

FontWerk does not automatically transfer this data to external services.

## Important notes

- Virtual folders in FontWerk are not real file system folders.
- Assigning a font to a project does not move the original file.
- Temporarily activated fonts may remain locked by Windows or other applications while active.
- If a font file needs to be replaced or deleted, it should be deactivated first.
- The context menu of a font can be used to check for a file lock.
- Character coverage checks whether characters are present in the font. It does not automatically evaluate typographic quality, glyph design, or OpenType details.
- Before production use, results, exported files, and generated PDFs should be checked carefully.

## Disclaimer of liability

FontWerk is provided without warranty. Use is entirely at your own risk. Jessa Studio accepts no liability for damages, data loss, business interruption, or any other consequences arising directly or indirectly from using the application.

## License

FontWerk is proprietary software. Use, distribution, modification, and exploitation are governed by the terms in [LICENSE](LICENSE.txt).

Included third-party libraries remain subject to their respective license terms. More information is available in `THIRD-PARTY-NOTICES.txt`.

## Links

- Website: <https://jessa.studio>
