Ersparnis durch Schriftuntergruppen in PDFs schätzen
Dieser Rechner vergleicht die Anzahl unterschiedlicher Zeichen in einem PDF mit dem vollständigen Glyphenbestand der eingebetteten Schrift.
Im Browser ausführen – kostenlos
Er nennt den geschätzten beibehaltenen und eingesparten Anteil, die entfernten Glyphen und das Verkleinerungsverhältnis. Die Berechnung ist bewusst nachvollziehbar und nimmt eine gleichmäßige Speicherverteilung je Glyphe an. Damit eignet sie sich zur Planung und zum Vergleich vor der Neuerstellung eines PDFs, ohne eine Byte-Genauigkeit vorzutäuschen, die sich aus den beiden Zählwerten allein nicht gewinnen lässt.
Was Ihnen die Schätzung zeigt
Eine vollständig eingebettete Schrift kann Tausende Glyphen enthalten, obwohl ein Dokument nur ein kleines Alphabet, einige Ziffern und Satzzeichen nutzt. Bei der Bildung einer Schriftuntergruppe bleiben die für die Darstellung benötigten Glyphen erhalten, alle übrigen entfallen. Geben Sie die vollständige Glyphenzahl der Schrift und die Anzahl der tatsächlich im PDF vorkommenden unterschiedlichen Zeichen ein. Der Rechner setzt jedes verwendete Zeichen mit einer beibehaltenen Glyphe gleich und vergleicht diese Untergruppe mit dem Gesamtbestand. Der Einsparungsprozentsatz bezeichnet den geschätzten Anteil der glyphenbezogenen Schriftdaten, der entfernt werden könnte. Der beibehaltene Prozentsatz stellt den Gegenanteil dar; das Verkleinerungsverhältnis zeigt, wie viel größer der gesamte Glyphenbestand als die geschätzte Untergruppe ist. Diese Werte eignen sich besonders, um Dokumente oder Schriften schnell zu priorisieren. Eine hohe mögliche Ersparnis spricht dafür, die Untergruppenbildung näher zu prüfen. Ein Wert nahe null bedeutet, dass das Dokument bereits fast alle verfügbaren Glyphen verwendet. Die Schätzung betrifft nur den eingebetteten Schriftanteil und nicht die gesamte PDF-Datei. Bilder, Inhaltsströme, Metadaten, Struktur und andere eingebettete Ressourcen bleiben unverändert.
So arbeitet das proportionale Modell
Der Algorithmus teilt die Zahl der unterschiedlichen verwendeten Zeichen durch die vollständige Glyphenzahl und erhält so den geschätzten verbleibenden Anteil. Diesen zieht er von eins ab, um die Ersparnis zu bestimmen. Beide Anteile werden in Prozent umgerechnet und für die Anzeige auf zwei Dezimalstellen gerundet. Außerdem wird die verwendete Zahl von der Gesamtzahl abgezogen, sodass die möglichen entfallenden Glyphen sichtbar werden. Es handelt sich um ein proportionales Glyphen-Speichermodell, nicht um einen Schriftanalysator. In echten Schriften belegt nicht jede Glyphe dieselbe Bytezahl: Ein einfaches Leerzeichen benötigt möglicherweise kaum Konturdaten, ein komplexes Ideogramm dagegen erheblich mehr. Hinzu kommen Tabellen für Namen, Metriken, Layoutregeln, variable Achsen, Hinting, Kerning und Zeichenzuordnungen. Einige bilden einen festen Overhead, andere können beim Erstellen einer Untergruppe schrumpfen. Verstehen Sie das Ergebnis daher als konsistente Planungskennzahl unter der Annahme einer gleich großen Durchschnittsglyphe. Aus Zählwerten allein lässt sich keine absolute Byte-Ersparnis ableiten. Dafür wären auch die ursprüngliche eingebettete Schriftgröße, Format, Komprimierung, beibehaltene Layoutfunktionen, Abhängigkeiten zusammengesetzter Glyphen und das eingesetzte Subsetting-Programm erforderlich.
So erhalten Sie verlässliche Eingabewerte
Verwenden Sie die Glyphenzahl genau des Schriftprogramms, das im PDF eingebettet ist oder werden soll, nicht die einer ähnlich benannten Desktop-Schrift. Verschiedene Ausgaben und regionale Varianten können unterschiedliche Bestände besitzen. Zählen Sie unterschiedliche Zeichen im gesamten Dokument erst, nachdem Sie die Regeln zur Textnormalisierung festgelegt haben, denn optisch gleiche Folgen können unterschiedliche Unicode-Codepunkte enthalten. Beachten Sie, dass Zeichen- und Glyphenzahl nicht immer übereinstimmen. Ligaturen können mehrere Zeichen zu einer Glyphe verbinden, kontextabhängige Formung kann verschiedene Glyphenformen wählen und zusammengesetzte Glyphen können im Text nicht erkennbare Bestandteile benötigen. Der Rechner verwendet die Zahl unterschiedlicher Zeichen bewusst als praktische Näherung, da nur diese Information vorliegt. Wenden Sie für Vergleiche dieselbe Zählweise auf alle Dokumente an. Übersteigt die Zeichenzahl den vollständigen Glyphenbestand, wird die Anfrage abgelehnt, statt eine negative Ersparnis auszugeben. Meist deutet dies auf unpassende Datenquellen, eine Verwechslung von gesamten und unterschiedlichen Zeichen oder eine nicht berücksichtigte Ersatzschrift hin. Prüfen Sie nach der tatsächlichen PDF-Erstellung die Untergruppe mit einem PDF-Analysewerkzeug und vergleichen Sie die realen Dateigrößen für eine endgültige Messung.
Anwendungsfälle
PDF-Optimierungen priorisieren
Vergleichen Sie die geschätzte Schriftersparnis eines Stapels und untersuchen Sie zuerst Dokumente mit dem größten ungenutzten Glyphenanteil.
Schriftauswahl bewerten
Schätzen Sie, ob eine umfangreiche mehrsprachige Schrift erheblich mehr Ballast erzeugt als eine zum Schriftsystem passende Variante.
Erwartungen vor dem Export klären
Geben Sie Produktionsteams eine nachvollziehbare relative Schätzung, bevor das PDF mit Schriftuntergruppen neu erstellt wird.
Häufige Fragen
Sagt das Ergebnis die genaue eingesparte Bytezahl voraus?
Nein. Die Zählwerte erlauben eine relative Schätzung; die Bytes hängen zusätzlich von Glyphenkomplexität, Tabellen, Format, Komprimierung und Subsetting-Programm ab.
Warum werden unterschiedliche statt aller Zeichen verwendet?
Wiederholte Zeichen nutzen gewöhnlich dieselbe eingebettete Glyphe erneut. Daher bildet die Zahl unterschiedlicher Zeichen den Untergruppenbestand besser ab.
Gilt der Einsparungsprozentsatz für das gesamte PDF?
Nein. Er gilt für den geschätzten glyphenbezogenen Anteil der eingebetteten Schrift. Andere PDF-Inhalte bleiben unberührt.
Was geschieht, wenn mehr Zeichen als Glyphen angegeben werden?
Die Eingabe wird abgelehnt, weil die Zählwerte widersprüchlich sind und sonst eine negative Ersparnis entstünde.
Kann ich null unterschiedliche Zeichen eingeben?
Ja. Dies beschreibt ein theoretisches Dokument ohne beibehaltene Zeichenglyphen und ergibt eine vollständige proportionale Ersparnis.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002; dieselbe deterministische Berechnung kann auch im Browser ausgeführt werden.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/pdf/embed-font-subset-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"full_glyph_count":2048,"distinct_characters_used":180}'const res = await fetch("https://api.kit.forhosting.com/pdf/embed-font-subset-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"full_glyph_count": 2048,
"distinct_characters_used": 180
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/embed-font-subset-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"full_glyph_count": 2048,
"distinct_characters_used": 180
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/embed-font-subset-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"full_glyph_count":2048,"distinct_characters_used":180}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"full_glyph_count":2048,"distinct_characters_used":180}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/embed-font-subset-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"full_glyph_count": 2048,
"distinct_characters_used": 180
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.embed_font_subset_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
max_pages | 200 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |