Wie rendert man den Text eines PDF-Dokuments, wenn die Schriftart nicht eingebettet ist?
Jeder Entwickler eines PDF-Viewers, eines PDF-Druckers und eines PDF zu Bild-Konverter-Tools stößt auf die Anforderung, nicht eingebettete Schriftarten zu rendern, und steht vor einer ziemlich herausfordernden Aufgabe. Nicht nur Entwickler, sondern auch Nutzer dieser Tools könnten an nicht eingebetteten Schriftarten interessiert sein und daran, wie diese Tools sie behandeln.
Jeder Zeichen eines Texts in einem PDF-Dokument ist einer Schriftart zugeordnet, die das Aussehen der Zeichen definiert, z. B. die Breiten der Stammzellen, die Höhe der Kleinbuchstaben im Vergleich zu den Großbuchstaben, Serifen, Zeichenmetriken und viele weitere Eigenschaften. Alle diese Eigenschaften und das genaue Aussehen eines Zeichens werden in einem Schriftprogramm beschrieben (insbesondere entweder in einem TrueType- oder einem PostScript Type 1-Programm).
Der Ersteller eines PDF-Dokuments kann wählen, ob das Schriftprogramm in die Datei eingebettet ist oder ob es nur namentlich darauf verwiesen wird. Wenn das Schriftprogramm eingebettet ist, kann es von der Render-Engine verwendet werden, um den Text anzuzeigen. Wenn die Schriftart jedoch nicht eingebettet ist und die Datei auf einem anderen Computer angezeigt oder gedruckt wird, ist es nicht gewährleistet, dass das ursprüngliche Schriftprogramm noch verfügbar ist. In diesem Fall muss die Render-Engine einen Ersatz für die ursprüngliche Schriftart finden. Dieser Prozess kann jedoch ziemlich herausfordernd sein. Warum? Berücksichtigen Sie Folgendes:
Der Name der Schriftart garantiert nicht, dass eine Systemschrift mit demselben Namen identisch mit der ursprünglichen Schriftart ist, z. B. die Arial Die Schriftart, die zur Erstellung des Dokuments verwendet wurde, könnte anders sein als die Arial Die Schriftart, die auf dem System installiert ist, das verwendet wird, um das Dokument anzuzeigen.
Der Name der eingebetteten Schriftart könnte anders sein als der Name der installierten Schriftart, z. B. könnte die eingebettete Schriftart den Namen tragen TimesRoman und die entsprechende installierte Schriftart könnte heißen Times New Roman.
Die eingebettete Schriftart ist möglicherweise überhaupt nicht auf dem Zielsystem verfügbar, z. B. gibt es keine installierte Schriftart mit dem Namen Coronet.
Um diese Probleme zu lösen, verwenden einige Render-Engines keine Systemschriften als Ersatzschriften, sondern bieten eine Reihe von Schriftschablonen an, die verwendet werden, um das endgültige Schriftprogramm zur Laufzeit basierend auf bestimmten Schriftmetriken wie der Schriftstärke, der Höhe der Kleinbuchstaben, der Zeichenbreiten usw. zu erstellen.
Multiple Master-Schriften sind eine dieser Technologien zur Anpassung von Schriftprogrammen. Multiple Master-Schriften sind Schriftschablonen, aus denen spezifische Schriftinstanzen erstellt werden können, indem ein Schriftgestaltungsvektor bereitgestellt wird, der Elemente wie das Schriftgewicht und die Zeichenbreite enthält. Konventionelle Schriftarten wie TrueType- oder PostScript Type 1-Schriften sind dafür nicht geeignet. Warum? Wenn Sie die Breite eines Zeichens einer TrueType-Schrift ändern möchten, ändern Sie z. B. automatisch dessen Stammbreite, was bei Multiple Master-Schriften nicht der Fall ist, wo Sie die Stammbreite und die Zeichenbreite unabhängig ändern können.
Multiple Master-Schriften sind nur als Ersatz für einfache Schriften verfügbar, d. h. Schriften mit einem kleinen, definierten Zeichensatz. Für Schriftarten mit großen Zeichensätzen wie chinesischen, koreanischen und japanischen Schriften ist es besser, eine Reihe von definierten Schriftprogrammressourcen zu verwenden.
Unsere PDF-Rendering-Engine verwendet eine Mischung aus den beschriebenen Technologien, um Ersatzschriften anzupassen und installierte Systemschriften zu verwenden.