Inline-Bilder und Typ 3 Schriftarten
Ich höre oft, dass das Inline-Bild-Konstrukt einen wesentlichen Mangel im Design der PDF-Seitenbeschreibungssprache darstellt. Inline-Bilder sind ein häufig verwendetes Element in Typ 3 Schriftarten. Dennoch führten die Bedenken einiger Experten dazu, dass sie dieses Feature im bevorstehenden PDF 2.0 Standard anpassten. Was sind Inline-Bilder und warum fühlen sich einige Programmierer von PDF-Readern unwohl damit?
Die PDF-Seitenbeschreibungssprache besteht aus Operatoren, mit denen Text, Grafiken und Bilder auf eine leere Seite platziert werden können. Wenn man ein Rasterbild auf eine Seite malen möchte, erhält das Bildobjekt einen Namen und wird dem Seitenressourcendictionary hinzugefügt. Der Maloperator verweist dann mit seinem Namen auf die Bildressource. Die Trennung zwischen Operatoren und Ressourcen hat den Vorteil, dass die Seitenbeschreibung kurz ist und die Ressource viele Male wiederverwendet werden kann, z. B. wenn das Bild ein Unternehmenslogo darstellt, das auf jeder Seite eines Dokuments verwendet wird.
Das Aussehen der Zeichen (Glyphen) einer Schriftart der Klasse 3 wird mit der gleichen Operator Sprache beschrieben, die zur Beschreibung des Erscheinungsbildes der Seite verwendet wird. Das Aussehen eines solchen Glyphs wird meist durch eine kleine Bildmaske beschrieben. Da eine Schriftart viele Glyphen haben kann und diese normalerweise ein einzigartiges Aussehen haben, können diese Bildmasken nicht wiederverwendet werden, und der Aufwand, jede von ihnen in ein separates Ressourcenobjekt zu setzen, ist hoch. Für diesen und ähnliche Anwendungsfälle erlaubt PDF es, kleine Bilder direkt in den Operatorstrom einzufügen. Dieses Feature wird "Inline-Bild" genannt.
Einige Programmierer argumentieren nun, dass diese Inline-Bilder schwer zu parsen sind. Tatsächlich kann die Länge dieser Bilddaten nur bestimmt werden, wenn die Daten vom Parser dekomprimiert werden, falls die Pixel Daten komprimiert sind. Und wenn der Parser die Länge der Daten nicht kennt, kann er den nächsten Operator nicht richtig finden. Daher wurde in PDF 2.0 ein optionales Längenattribut eingeführt.
Meine persönliche Meinung ist jedoch, dass Inline-Bilder, wenn sie sorgfältig in Situationen verwendet werden, für die sie entworfen wurden, ein nützliches Mittel sind, um die Größe einer PDF-Datei zu reduzieren. Das Dekomprimieren der Bilder im Parser ist kein echtes Problem, da sie normalerweise sehr klein sind. Und das Längenattribut hilft nicht wirklich, da es optional ist. Darüber hinaus funktioniert das Feature seit mehr als 20 Jahren.