Inline-Bilder und Schriftarten vom Typ 3
Ich höre oft, dass die Inline-Bildkonstruktion ein schwerwiegender Mangel im Design der PDF-Seitenbeschreibungssprache ist. Inline-Bilder sind eine oft verwendete Funktion in Schriftarten vom Typ 3. Die Bauchschmerzen einiger Experten haben sogar dazu geführt, dass sie diese Funktion im kommenden PDF 2.0-Standard anpassen mussten. Was sind Inline-Bilder und warum fühlen sich einige Programmierer von PDF-Readern unwohl mit ihnen?
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 Ressourcen-Wörterbuch der Seite 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 mehrfach 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 Typ <b>3</b>-Schrift wird mit derselben Operatorsprache beschrieben, die verwendet wird, um das Aussehen der Seite zu beschreiben. Das Aussehen eines solchen Glyphen wird hauptsächlich durch eine kleine Bildmaske beschrieben. Da eine Schrift 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 das direkte Platzieren von kleinen Bildern im Operatorstrom. Diese Funktion wird 'Inline-Bild' genannt.
Einige Programmierer argumentieren nun, dass diese Inline-Bilder schwer zu analysieren sind. In der Tat kann die Länge dieser Bilddaten nur bestimmt werden, wenn die Daten vom Parser dekomprimiert werden. Und wenn der Parser die Länge der Daten nicht kennt, kann er nicht korrekt den nächsten Operator finden. Daher wurde in PDF <b>2,0</b> 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 gestaltet 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 die Funktion seit mehr als 20 Jahren.