<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.0.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 nur die organisatorischen Zuordnungen und verschiebt oder kopiert Schriftdateien nicht automatisch.

## Funktionen

- Anzeige installierter Windows-Schriften, Benutzer-Schriften und externer Schriftdateien
- Einbindung zusätzlicher Schriftordner, auch von Netzlaufwerken
- 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
- Drag & Drop von Schriften in virtuelle Ordner/Projekte
- Drag & Drop zum Hinzufügen externer Schriftordner und Schriftdateien
- temporäre Aktivierung und Deaktivierung externer Schriften ohne Windows-Neustart
- 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
- 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
- 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 und Französisch
- System-, Hell- und Dunkelmodus
- 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`.

## 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.

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

- Projektname
- Kunde
- Sprachen
- Notizen
- Farbmarkierung
- Auto-Aktivierung beim Programmstart

## Externe Schriftordner

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 externe Schriftdatei direkt auf ein Projekt gezogen, registriert FontWerk den zugehörigen Quellordner und ordnet die Schrift anschließend dem Projekt zu.

## 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.

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.
- 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.

## 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 kann 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.

## 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

Das Musterblatt kann als A4-Vorschau in einem eigenen Fenster geöffnet, gedruckt oder direkt als PDF gespeichert werden.

## 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 verändert keine Dateien. Sie dient als Warn- und Entscheidungshilfe, wenn mehrere ähnliche oder gleichnamige Schriften vorhanden sind.

## 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

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.

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 organizational assignments only and does not automatically move or copy font files.

## 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
- drag and drop of fonts into virtual folders/projects
- drag and drop for adding external font folders and font files
- temporary activation and deactivation of external fonts without restarting Windows
- 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
- 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
- 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, and French
- system, light, and dark themes
- 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`.

## 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.

Projects can store additional information:

- project name
- customer
- languages
- notes
- color tag
- automatic activation at application startup

## External font folders

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 external font file is dragged directly onto a project, FontWerk registers the corresponding source folder and assigns the font to the project.

## Temporary font activation

FontWerk can temporarily activate external fonts. This makes them available for the current Windows session without installing them permanently in Windows.

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.
- 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.

## 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.

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.

## 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

The specimen sheet can be opened as an A4 preview in a separate window, printed, or saved directly as a PDF.

## 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 does not modify any files. It is intended as a warning and decision aid when several similar or identically named fonts are present.

## 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

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.

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>
