Folgendes Problem musste ich lösen, ich möchte den Vorgang mitteilen, vielleicht nützt es anderen Anwendern:
Neulich habe ich zum erstenmal bei der Bahn ein Online-Ticket gekauft. Man bekommt die Fahrkarte als PDF-Datei zum Ausdrucken: Das ist gegenüber den nervtötenden Fahrkartenautomaten oder langem Schlangestehen am Schalter eine sehr komfortable Sache.
Für Linux-Anwender kann es allerdings ein wenig umständlicher sein bzw. technische Laien in Panik versetzen. Ich habe die PDF-Datei in Evince angesehen, sie sah einwandfrei aus. Beim Drucken gab mein OKI C321dn (Farb-LED mit PostScript) eine Seite mit dem Bahn-Logo und der Überschrift "Online-Ticket" und dann eine Seite mit einer PostScript-Fehlermeldung "invalidfont" aus. Das von der Bahn erzeugte PDF-Dokument verwendet laut Konsolenausgabe pdffonts (idiotischerweise) die Fonts Helvetica und Arial, keiner davon ist eingebettet. Helvetica gehört zum Standard aller PostScript-Geräte und muss deshalb nicht eingebettet werden, Arial hingegen ist die Imitation von Microsoft und gehört nicht zum PostScript-Gerätestandard.
Der 0815-Windowsuser öffnet das PDF-Dokument in Adobe Reader. Die Schrift Arial ist auf jedem Windows-System vorhanden. Falls ein PDF eine nicht eingebettete Schrift verlangt, die nicht auf dem Computer installiert ist, nimmt Adobe Reader eine vertikal und horizontal skalierbare Standard-Ersatzschrift. Die Daten werden für den Druck aufbereitet, was auf dem Bildschirm zu sehen ist, wird in aller Regel auch gedruckt. (Deshalb wird in der professionellen Druckvorstufe die Arbeit mit Adobe Acrobat seit langem gegenüber dem klassischen PostScript bevorzugt, weil man den Ärger mit PostScript-Fehlern damit umgehen kann.)
Evince dagegen arbeitet einfacher und ökonomischer: Beim Drucken läuft wohl im Hintergrund einfach ein lp- oder lpr-Kommando des Betriebssystems, das die PDF-Datei direkt so, wie sie ist, an den Drucker schickt. Ich weiß nicht, was bei einem nicht-postscriptfähigen Drucker dann passiert (ich habe mein Leben lang fast nur PostScript-Drucker verwendet). Ein PostScript-Drucker kann jedenfalls fehlende Fonts nicht ersetzen, der Ausdruck scheitert. (Die Microsoft-Fonts sind bei mir aus Kompatibilitätsgründen im System installiert, das hat aber auf den PDF-Druck mit lp oder aus Evince keine Auswirkungen.)
Um das Dokument dennoch drucken zu können, muss es mit Ghostscript umgewandelt werden:
1 | gs -sDEVICE=pdfwrite -o output.pdf input.pdf |
Dabei werden die Fonts eingebettet. Eine andere für diesen Zweck brauchbare Möglichkeit ist die Umwandlung in ein Pixelformat mit Imagemagick:
1 | convert -density 300x300 input.pdf output.pdf |
Für mich als in der Materie kundigen Anwender ist ein solcher Workaround kein Problem. Für einen Durchschnittsanwender, der ein Online-Ticket kauft, es kurz vor Antritt der Reise schnell ausdrucken will und dann feststellen muss, dass es nicht geht, könnte es ein großes Problem sein. Das ist eine von den vielen kleinen Tücken, die technisch wenig versierten Nutzern die Verwendung von Linux verleiden können.
Die "Schuldfrage" lässt sich eindeutig beantworten: Den Entwicklern von Evince ist kein Vorwurf zu machen. Sie gehen von standardkonformen PDF-Dateien aus. Eine standardkonforme PDF-Datei (im Sinne der von Adobe gesetzten Standards der Druckvorstufe) enthält eingebettete Fonts, oder sie verwendet nur die Adobe-Standardfonts Times, Helvetica und Courier (nicht die Microsoft-Imitate Times New Roman, Arial und Courier New). Das Problem ist: Man bekommt öfters nicht standardkonforme PDF-Dateien. In diesem Fall haben die Web-Entwickler der Bahn schlampig programmiert. Sie probieren ihre Entwicklungen offensichtlich nur mit der Windows-Standardsoftware inklusive Adobe Reader aus; auf die Idee, dass es Anwender gibt, die keine proprietäre Software verwenden möchten, kommen sie wahrscheinlich gar nicht erst. Ich habe an die zuständige Bahn-Tochterfirma (DB Vertrieb GmbH) sogleich einen Beschwerdebrief geschrieben und die Einhaltung der Standards angemahnt - auf die Antwort bin ich gespannt. Es sind solche Schlampereien, die Linux-Anwendern das Leben schwer machen können.
Wegen des Bahnstreiks musste ich die geplante Reise dann umdisponieren: Ich habe das Bahnticket storniert und stattdessen einen Fernbus (eines anderen Anbieters) gebucht. Auch da bekam ich das Ticket als PDF - vorbildlich mit eingebetteten Fonts.