Nerd-Tipp 23.05.2024, 09:00 Uhr

Mit GhostScript mehrere PDFs automatisch per Batch-Datei verkleinern

Hatten Sie auch schon einen Stapel von PDF-Dateien, die für die Übermittlung einfach zu gross waren? Erstellen Sie für solche Fälle eine Batch-Datei, an die Sie zu verkleinernde PDFs schlicht via rechte Maustaste senden können. Was es hierfür braucht, ist GhostScript.
Mit GhostScript und einem simplen Batch-File bekommen Sie PDF-Dateien schnell verkleinert
(Quelle: PCtipp.ch)
Angenommen, Sie haben einige PDF-Dateien, die Sie jemandem übermitteln wollen. Vermutlich haben Sie diese in einer hohen Auflösung gescannt, bei der die enthaltenen Bilder beispielsweise für Druckzwecke mit 300 dpi eingebettet sind. Darum sind die PDFs relativ gross. Manchmal gibts aber eine Grössenbeschränkung: Etwa bei manchen Online-Stellenbewerbungen heisst es, dass die PDFs für Motivationsschreiben, Lebenslauf und Zeugnisse zusammen 10 MB nicht überschreiten dürfen.
Wenn die PDFs ohnehin nur für Betrachtung am Bildschirm vorgesehen sind, dann können Sie diese beispielsweise mit GhostScript verkleinern. GhostScript ist ein freier PostScript-Interpreter. Er wird auch oft von anderen Anwendungen zum Erstellen oder Umwandeln von PostScript- und PDF-Dateien verwendet. GhostScript gibts mit einer Open-Source- und mit einer kommerziellen Lizenz. Greifen Sie zu ersterer. Surfen Sie zu https://www.ghostscript.com/releases/gsdnld.html und klicken Sie in der Spalte «GNU Affero General Public License» auf «Ghostscript AGPL Release» in der Zeile «Ghostscript 10.02.0 for Windows (64 bit)». Ist GhostScript heruntergeladen, installieren Sie es wie gewohnt.

Das Script

Jetzt hätten Sie also gerne ein Script, mit dem Sie PDFs mit wenigen Klicks in ein niedriger auflösendes Format bringen wollen. Ich verwende im vorliegenden Beispiel das als «/ebook» bezeichnete Format, das schlicht und ergreifend «150 dpi» bedeutet.
Öffnen Sie im Explorer den Senden-an-Ordner. Den finden Sie oft schon, indem Sie in der Explorer-Adresszeile sendto eintippen. Falls nicht, navigieren Sie von Hand zum Ordner C:\Users\IhrName\AppData\Roaming\Microsoft\Windows\SendTo oder tippen Sie in der Adresszeile %appdata%\Microsoft\Windows\SendTo ein.
Ein Rechtsklick auf eine freie Stelle in diesem Ordner sollte Textdokument anbieten. Nennen Sie es beispielsweise PDFAlleVerkleinern.txt. Öffnen Sie die Datei per Doppelklick im Notepad-Editor. Fügen Sie nun diese sieben Zeilen ein, die zweite und die letzte sind leer:
setlocal enabledelayedexpansion

for %%A in (%*) do (
    "C:\Program Files\gs\gs10.02.0\bin\gswin64c.exe" -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile="%%~dpA%%~nA_klein.pdf" "%%~A"
)
endlocal

So sieht das Script im Notepad-Editor aus
Quelle: PCtipp.ch
Speichern Sie die Datei und benennen Sie die Datei von PDFAlleVerkleinern.txt in PDFAlleVerkleinern.bat um. Hierfür müssen Sie allenfalls via Anzeigen/Einblenden die Dateinamenerweiterungen aktivieren.
Wenn Sie jetzt eine PDF-Datei (oder gleich mehrere ausgewählte) mit rechts anklicken, finden Sie unter Senden an auch den Namen Ihres Scripts (PDFAlleVerkleinern.bat). Benutzen Sie dies, werden die markierten PDFs ins transport- und bildschirmfreundliche EBook-Format heruntergerechnet. Die Originaldateien bleiben bestehen, und es erscheinen zusätzliche, meist kleinere PDFs mit dem Namenszusatz «_klein.pdf». Wenn Sie mögen, können Sie im Script anstelle von «_klein» auch etwas anderes verwenden.
Schon lassen sich PDFs unkompliziert verkleinern
Quelle: PCtipp.ch
Das Skript tut Folgendes: Mit setlocal enabledelayedexpansion ermöglichen Sie, dass die Werte verzögert abgerufen werden, was bei der Behandlung mehrerer Dateien in einem Loop erforderlich ist.
for %%A in (%*) do ( Dies startet den Loop, der sich durch jedes mitgelieferte Argument arbeitet.
Die nächste, sehr lange Zeile ruft die Kommandozeilen-Version (gswin64c.exe) von GhostScript mit den gewünschten Parametern auf. Der Parameter -dPDFSETTINGS=/ebook sorgt dafür, dass das PDF auf EBook-kompatible 150 dpi reduziert wird. Wollen Sie noch weitergehen, können Sie auch 72 dpi verwenden, wofür Sie stattdessen -dPDFSETTINGS=/screen benutzen. Das sieht dann allerdings wirklich nicht mehr hübsch aus.
Mit %%~dpA und %%~nA werden Laufwerk und Pfad sowie der Name der jeweiligen Ausgabedatei zusammengesetzt, wobei wir mit «_klein.pdf» einen Zusatz anhängen, damit die Originaldatei nicht überschrieben und die verkleinerte Datei am Namen kenntlich gemacht wird. Und "%%~A" ruft das Eingabefile ab. Zum Schluss wird mit endlocal der eingangs gesetzte Parameter zurückgesetzt.



Kommentare
Avatar
michelm
vor 4 Stunden
Ghostscript liegt in der Version 10.03.1 vor. Der Batchscript muss bei Installation dieser Version entsprechend angepasst werden (Pfad zur gswin64c.exe).