Schriftartenuntergruppen - wie sie funktionieren und wann sie zu verwenden sind
Um die Dateigröße zu verringern, verwenden PDF-Hersteller eine Technik, die als Font Subsetting bezeichnet wird. Was genau passiert mit den Schriftarten und was sind die Folgen?
Wenn eine PDF-Erstellungssoftware einer Seitenbeschreibung Text hinzufügt, bezieht sie sich auf eine Schriftart. Die Schriftart enthält eine Sammlung von Zeichen mit einer Beschreibung ihres grafischen Aussehens, die Glyphen genannt werden, sowie Metriken und andere relevante Informationen für die Darstellung des Textes. Es gibt verschiedene Arten von Schriftformaten, die in einem PDF-Dokument verwendet werden können, z. B. Type 1-, TrueType-, CFF- und OpenType-Schriftarten.
Schriftarten müssen nicht in eine PDF-Datei eingebettet werden. In diesem Fall werden sie namentlich genannt und müssen verfügbar sein, um das Dokument korrekt wiederzugeben. Um zu gewährleisten, dass die Schriften immer verfügbar sind, kann die PDF-Erstellungssoftware sie als binäre Streams in die Datei einbetten. Die Größe der Schriftdateien selbst kann jedoch verringert werden, indem alle Informationen aus ihnen entfernt werden, die für die korrekte Wiedergabe des Dokuments nicht benötigt werden. In der PDF-Spezifikation ist genau aufgelistet, welche Schriftbestandteile erforderlich sind. Darüber hinaus kann die Schriftgröße reduziert werden, indem nur die Zeichenbeschreibungen belassen werden, auf die sich die Textobjekte tatsächlich beziehen. Das Entfernen nicht benötigter Zeichenbeschreibungen wird als Subsetting bezeichnet.
Schriften mit PostScript-Konturen (Type1, CFF, OpenType) können durch einfaches Entfernen der Zeichenketten verkleinert werden, da ihre Auswahl über eindeutige Glyphnamen oder Zeichenbezeichner (CID) erfolgt. Für TrueType-Konturen gibt es verschiedene Möglichkeiten, die Unterteilung vorzunehmen. Eine Option besteht darin, die Glyphen vollständig zu entfernen, die andere darin, nur die Umrisse zu entfernen und leere Glyphen zu behalten. Der Vorteil der ersten Option ist, dass die resultierende Größe kleiner ist. Der Vorteil der zweiten Option ist, dass sich die Glyphenbezeichner (GID) nicht ändern. Dies ist wichtig, da die Glyphen anhand ihrer GID ausgewählt werden. Bei Verwendung der ersten Option müssen die Font-Encoding-Tabellen (cmap) oder die GIDtoCIDMap-Datenstruktur angepasst werden, um die Änderungen in der Glyphennummerierung widerzuspiegeln. Es gibt aber auch einige Sonderfälle.
Schriftprogramme können zusammengesetzte Glyphen enthalten, z. B. kann sich die Glyphe "ä" auf zwei separate Glyphen "a" und "¨" beziehen. Beim Subsetting eines solchen Fonts müssen die Beschreibungen der zusammengesetzten Glyphen aktualisiert werden, wenn sich die Nummerierung der Glyphen ändert, und die Glyphen, auf die verwiesen wird, dürfen nicht entfernt werden, wenn der Text in einem Dokument nicht direkt auf sie verweist. Andere Informationen wie die Codierungstabellen (cmap), Fontmetriken (head, hhea, hmtx) und Anweisungen (prep, fpgm, cvt) können sich ebenfalls auf Glyphennummern beziehen und müssen entsprechend aktualisiert werden.
Subsetting erschwert die Bearbeitung von PDF-Dokumenten. Besonders in interaktiven Formularen dürfen die Schriften, die zum Ausfüllen von Formularfeldern verwendet werden, nicht untertitelt werden.
Die Untertitelung von Schriften ist eine komplexe Aufgabe und fehleranfällig. Die meisten schlechten PDF-Dateien in der Praxis enthalten fehlerhafte eingebettete Schriftarten, die auf nicht funktionierende Untersetzungsalgorithmen zurückzuführen sind.