Schriftprobleme in Mac OS X 10.6.7

Nachtrag 26.04.2011: Der folgende Artikel ist soeben gegenstandslos geworden. Apple hat das Snow Leopard Schrift-Update herausgegeben, das die beschriebenen Probleme behebt, erhältlich über die Apple-Softwareaktualisierung. (Installer zum Download hier.) Wer zwischenzeitlich den unten erwähnten „FontFix10.6.7“ installiert hat, sollte unbedingt zunächst erneut das Mac OS X 10.6.7 Update installieren, um alles auf einen einheitlichen Stand zu bringen.

Fehlerhafte PDFs, die mit 10.6.7 ohne Schrift-Update erstellt wurden, bleiben allerdings fehlerhaft. Sie können zwar mit der Apple Vorschau geöffnet werden, aber selbst wenn sie dort über Drucken -> Als PDF sichern erneut gespeichert werden, bringen sie Adobe Acrobat weiterhin zum Absturz. Sie müssen also komplett neu erstellt oder wie unten beschrieben über GhostScript konvertiert werden.

Apple bringt uns im Mac OS X 10.6.7 Update viele Verbesserungen, aber leider auch ein gewichtiges Problem. In 10.6.7 wurde die Schriftverwaltung verändert, um eine Sicherheitslücke in den Apple Type Services zu schließen. Theoretisch kann auf früheren Systemversionen über eine speziell manipulierte Schrift beliebiger Programmcode ausgeführt werden. Zum Glück sind solche Schriften (Volksmund: Viren) noch nicht in freier Wildbahn gesichtet worden.

Leider vertragen sich die neuen Systemroutinen nicht gut mit anderen Programmen, insbesondere werden Schriften im OpenType-PostScript-Format nicht korrekt verarbeitet. Die fraglichen Schriften tragen meistens die Namensendung „.otf“, genau kann man das Format einer installierten Schrift über die Apple Schriftsammlung (Programme -> Dienstprogramme) erfragen, dort über das Menü Vorschau -> Schriftinformationen einblenden.

Man hat den Eindruck, daß Apple dieses Update überhastet freigegeben hat.

In antiken Programmen wie dem nach wie vor beliebten FreeHand kann es zu einer verzerrten Schriftdarstellung kommen:

Moderne Programme wie Apple TextEdit stellen die Schrift zwar meist korrekt dar, aber bei der Umwandlung in ein PDF (Drucken -> PDF -> Als PDF sichern) werden die betroffenen Schriften in einem Format eingebettet, das nur auf Mac OS X 10.6.7 funktioniert. Adobe Acrobat, auch in der ganz neu aktualisierten Fassung 9.4.4, stürzt beim Öffnen solcher PDFs ab oder stellt sie unvollständig dar. Dasselbe gilt für die Übernahme der PDFs in andere Adobe-Programme oder auf früheren Mac-OS-X-Versionen in beliebige Programme. Wird ein PDF andererseits über die Adobe-Programme erstellt, etwa durch Export aus InDesign oder Illustrator, kommt im Hintergrund Adobes Distiller zum Einsatz, der neue Programmcode von Apple bleibt außen vor, und die PDFs verhalten sich wie gewohnt.

Neben den PDF-Problemen kommt es unter 10.6.7 aber auch zu Fehlern beim Ausdruck auf manchen PostScript-Druckern, auch aus Adobe-Programmen. Es sind anscheinend vor allem Drucker mit Adobe-PostScript betroffen, die den Druckvorgang entweder mit Fehlermeldung abbrechen oder unvollständige oder verzerrte Seiteninhalte ausgeben.

Bleibt die Frage: Was tun?

Am einfachsten ist es, solange bei Mac OS X 10.6.6 auszuharren, bis Apple das Problem hoffentlich irgendwann im Update auf 10.6.8 behebt. (Laut Apple und Adobe ist der Fehler bekannt, eine Lösung ist in Arbeit.) Ein Update von früheren Versionen auf 10.6.6 lohnt sich wegen der vielen Verbesserungen, aber anstelle des automatischen Updates über die Apple-Softwareaktualisierung sollte man das 10.6.6 Combo Update herunterladen und installieren. Alle anderen Updates der Softwareaktualisierung darf man anwenden, nur das 10.6.7 Update sollte man jedesmal abwählen.

Wer schon auf 10.6.7 aktualisiert hat und vom Problem betroffen ist, hat mehrere Möglichkeiten.

Auf der Website azlist.info bietet „Kj“ mit dem „FontFix10.6.7“ ein Installationspaket an, das in Mac OS X 10.6.7 die Routinen der Apple Type Services durch die bewährten Routinen aus 10.6.6 ersetzt. In einem Apple-Diskussionsforum berichten einige Anwender begeistert, daß damit alles wieder beim alten sei.

Gründlicher und weniger unkonventionell ist es, komplett auf 10.6.6 abzurüsten. Hierzu muß man zunächst Snow Leopard von DVD neu installieren und dabei die Option „archivieren und neu installieren“ wählen. (Es eignet sich die mit dem Rechner mitgelieferte Snow-Leopard-DVD oder, für ältere Macs, eine Upgrade-Version.) Anschließend sollte man das 10.6.6 Combo Update und danach alle von der Softwareaktualisierung angebotenen Updates installieren – aber dabei 10.6.7 natürlich auslassen.

Eins ist zu bedenken: Hat man auf den Stand von 10.6.6 zurückgerüstet, ob mit dem FontFix10.6.7 oder über ein komplettes Downgrade, so lassen sich einmal mit 10.6.7 fehlerhaft erstellte PDFs nicht mehr öffnen.

Zuletzt gibt es aber noch die Möglichkeit, die von 10.6.7 erstellten PDFs in ein Format zu wandeln, das auch von anderen Systemen sowie von Adobe Acrobat gelesen werden kann. Hierzu habe ich eine umständliche aber wirkungsvolle Methode gefunden. Hinweise, wie sich die Prozedur vereinfachen läßt, werden dankend angenommen! Wer im Terminal zuhause ist und die Apple-Entwicklertools installiert hat, kann wie folgt verfahren.

Benötigt werden aktuelle Versionen der Kommandozeilen-Dienstprogramme pdftops, pdf2ps und ps2pdf. Dabei stammt pdftops aus dem Projekt Poppler, einer Open-Source-Alternative zu Acrobat, während pdf2ps und ps2pdf Teile des Open-Source-Projekts GhostScript sind. Leider kenne ich keine fertigen Installationspakete für die aktuellen Versionen Poppler 0.16.4 und GhostScript 9.0.2, aber sie lassen sich aus dem Quellcode leicht mit „./configure“, „make“ und „sudo make install“ übersetzen und installieren. Für Poppler müssen in der Regel vorher noch die Pakete pkg-config und fontconfig installiert werden, was aber auch unkompliziert funktioniert.

Die Idee ist, die fehlerhaften PDFs zunächst in PostScript und dann erneut in PDF umzuwandeln, so daß die Schriften nicht von den problembehafteten Apple-Routinen eingebettet werden und daher auch für andere Programme lesbar bleiben.

GhostScript in der aktuellen Version erkennt die eingebetteten Problemschriften als fehlerhaft, ersetzt sie aber meist durch unpassende Standardschriften. Poppler beläßt die Schriften in ihrer fehlerhaften Form. Erst im Zusammenspiel kommt etwas Brauchbares heraus. Wenn nun Poppler und GhostScript erfolgreich installiert sind, muß man im Terminal schließlich folgendes eingeben, um ein PDF „mypdf.pdf“ im Benutzerordner umzuwandeln:

pdftops mypdf.pdf
ps2pdf mypdf.ps
pdf2ps mypdf.pdf
ps2pdf mypdf.ps

Achtung, das ursprüngliche PDF wird dabei überschrieben!

Das Ergebnis ist ein PDF, das wieder auf allen Systemen lesbar ist und dem Original zumindest sehr ähnlich sieht. Die Schriften werden dabei in PostScript Type 3 gewandelt, was zu einer schlechteren Bildschirmdarstellung führt, aber im Ausdruck meist kaum zu sehen ist. Für die Druckvorstufe ist diese Methode aber wohl weniger geeignet.