Chemiestudium mit Linux und TeX

PDF als Bild rastern und wieder zu einer PDF-Datei zusammenfügen

Bei der Einrichtung meines neuen Druckers hatte ich festgestellt, dass gewisse PDF-Betrachter beim Ausdrucken die PDF-Dateien auf unterschiedliche Weise entstellen (also manche Zeichen einfach nicht drucken oder mal eben aus jedem Zeichen das nächste im ASCII-Code folgende Zeichen machen oder die Fußzeile nicht drucken…). Meine Idee war dann, die PDF-Datei in eine Pixelgrafik umzuwandeln und anschließend die Pixelgrafiken wieder zu einer PDF-Datei zusammenzufügen, um anschließend diese zu drucken. Das hat auch funktioniert, nur mittlerweile hatte ich keine Lust mehr, das immer manuell durchführen zu müssen und habe mir jetzt deshalb ein Bash-Skript dafür geschrieben, welches ImageMagick verwendet.

Das Skript wurde von Kreuvf verbessert und hier hochgeladen.
hochgeladen.

Der Aufruf erfolgt zum Beispiel mit

Natürlich gibt es für ein solches Skript auch noch andere Anwendungsmöglichkeiten, für die unter Umständen eine Rasterung als JPG sinnvoller ist – hierzu reicht eine einfache Ersetzung aller Vorkommen von png durch jpg und eventuell eine Angabe der Qualität – eine Ersetzung von convert -density 300 durch convert -density 150 -quality 50 erzeugt beispielsweise PDF-Dateien mit JPG-Bildern mit einer Auflösung von 150dpi und einer Qualitätseinstellung von 50%.

Für meine Zwecke ist JPG keine Option, denn 1. soll die Datei danach gedruckt werden, sodass die Qualität so gut es geht erhalten bleiben soll (eine Rasterung auf 300dpi schadet nicht, da ich ohnehin mit dieser Auflösung drucke – 600dpi würde sehr viel länger zum Rastern in Anspruch nehmen) und 2. sind selbst bei einer JPEG-Qualität von 50% (300dpi) die JPG-PDF-Dateien, die natürlich hauptsächlich Text und scharfe Linien enthalten, in allen getesteten Fällen größer als die PNG-PDFs – teilweise immer noch mehr als doppelt so groß.

Comments on: "PDF als Bild rastern und wieder zu einer PDF-Datei zusammenfügen" (4)

  1. Hey, Toshiki, schön mal wieder was von dir zu lesen ^^

    Als ich den Artikel gestern gelesen hatte, dachte ich mir so: “Ach, das bash-Skript leerzeichenfähig zu machen, geht doch sicher ruckzuck.” Und so saß ich dann letzten Endes bis 1 Uhr nachts da und bin nicht weitergekommen xD

    Aber Stack Exchange war zur Stelle und hat geholfen. Ich habe dein Skript mal in ein Git-Repository gepackt (noch nicht online) und würde da dann auch meine überarbeitete Variante, die mit Leerzeichen umgehen kann, committen. Hast du spezielle Lizenzwünsche zu deinem Skript, ich würde das ja am liebsten in die Public Domain stellen, richte mich da aber nach dir.

    • Toshiki said:

      Hi, Kreuvf,

      danke für Deinen Kommentar.

      Nachdem ich das Skript gestern zum Laufen gebracht hatte – ich hatte erst versucht, es mit LaTeX zusammenzufügen, bis mir die Idee gekommen ist, dass convert dazu ja eigentlich ausreicht… – dachte ich mir auch, dass das mit den Leerzeichen einfach zu machen sein sollte. Nach einer halben Stunde hatte ich es dann aufgegeben und mir gedacht: Naja, Dateien mit Leerzeichen haste jetzt seit fast zwei Jahren nicht mehr gehabt und jemand anders wird das Skript sowieso nicht verwenden. PDFs zu rastern ist sowieso schon eine ziemlich exotische Tätigkeit.

      Danke für Deine Arbeit am Skript. Spezielle Wünsche zur Lizenz habe ich keine – eine freie Lizenz oder Public Domain.

  2. お石井さん、見て下さい:https://github.com/kreuvf/misc.

    Sorry, hat etwas länger gedauert *hust* Habe das Skript vor wenigen Tagen tatsächlich gebraucht! Mein Drucker hat nämlich beim Drucken einer PDF die Buchstaben nicht richtig ausgedruckt…

    • Toshiki said:

      Danke für Deine Arbeit. Freut mich, dass mein Skript tatsächlich außer mir noch jemandem nützt.