Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
suche PDF Programm zum PDF komprimieren
- Ersteller fast
- Erstellt am
SKu
Fleet Admiral
- Registriert
- Aug. 2012
- Beiträge
- 11.351
Warum muss es eine Software sein? Ginge so etwas nicht auch: https://smallpdf.com/de/pdf-verkleinern
marzk
Lt. Junior Grade
- Registriert
- Sep. 2006
- Beiträge
- 385
fast schrieb:es muss lokal ausgeführt werden können und das automatisiert (cmd Batch), welcher dann z.B. via Taskscheduler angestossen wird.
Da bietet sich doch die Idee von max40 an.
- Registriert
- Feb. 2004
- Beiträge
- 59
max40 schrieb:Versuch es mal mit Ghostscript. Das hat bei mir auch schon oft geholfen. Die PDF Datei war nachher nur noch halb so groß und das ohne verluste.
Code:gswin32c.exe -sDEVICE=pdfwrite -sOutputFile=out.pdf -q -dBATCH -dNOPAUSE input.pdf
Habe GS9.2 x86 installiert und dies so aufgerufen:
Code:
gswin32c.exe -sDEVICE=pdfwrite -sOutputFile=C:\test\001xx.pdf -q -dBATCH -dNOPAUSE C:\test\001.pdf
es wurde ein neues PDF erstellt wie mal angeben nur leider nicht keliern, sonder sogar 1KB grösser (803KB). Habe dies einmal mit einem Acrobat Pro getestet mit der Option PDF Speichern - reduzierter grösse, da komme ich auf 90KB, ein Acrobat steht mir aber da nicht zu Verfügung.
P.S. kann man hier bei den Filenamen auch mit Wildcard * Arbeiten oder einen ganzen Ordner Angeben. Das Oututfile soll auch den gleichen Namen bekommen (also überschrieben werden).
Ergänzung ()
hab noch folgende Optionen gefunden:
•/screen, 72 dpi
•/ebook, 150 dpi
•/printer, 300 dpi
•/prepress, 300 dpi
•/color preserving
•/default, entspricht im Wesentlichen /screen
die helfen so wie es aussieht.
Kann ich hier auch nur mit Ordnern Arbeiten (statt files) bei denen der Inhalt 1:1 so ersetzt wird?
Ergänzung ()
Habe Probleme hier mehrere Files zu packen und die wieder mit dem gleichen Namen neu zu schreiben. (Filenamen ändern sich). Mit einem Wildcard kann man leider nicht Arbeiten z.B. *.PDF
Ergänzung ()
Die Input könnte man mit einer Liste
bestücken aber beim Outputfor %s in (C:\privat2\*.pdf) do ECHO "%s" >> C:\List\filename.lst
finde ich keine Lösung mehr....-sOutputFile=
gibt es sonst noch andere Programme die so etwas via Commandline können oder kann dies irgendwie via VBS umgehen?
PDF24 creator hat z.B. pdf24-compress aber leider finde ich da keine CMD line Möglichkeit
Für was werden CMD varianten angeboten wenn man nicht mit Wildcards oder variabeln arbeiten kann ???
Zuletzt bearbeitet:
man könnte doch dann in dem DO-Teil den OuptuFile zusammenbauen und danach ghostscript aufrufen
Hab noch nicht geprüft ob ghostscript die input-Datei mit output-Datei überschreiben kann, aber wenn nicht, kopier dir einfach die Original-Datei in ein eigenes Verzeichnis (z.B. privat2_gs).
Das alles sollte man mit einer kleinen batch-Datei hinbekommen die folgenden Ablauf haben könnte:
Code:
set _input=c:\privat2\xyz.pdf
set _output=c:\privat2_out\xyz.pdf
gswin32c.exe -sDEVICE=pdfwrite -sOutputFile=%_output% -q -dBATCH -dNOPAUSE %_input%
Das alles sollte man mit einer kleinen batch-Datei hinbekommen die folgenden Ablauf haben könnte:
Code:
Verzeichnis C:\privat2_gs anlegen
for %s in (C:\privat2\*.pdf) do( <-- ich glaub hier gibt es noch andere Varianten
so das du nur den Dateinamen erhälst
- pdf datei kopieren nach c:\privat2_gs
- ghostscript aufrufen welches c:\privat2_gs\%s liest und nach c:\privat2\%s ausgibt
- pdf datei aus c:\privat2_gs löschen
)
Verzeichnis C:\privat2_gs löschen
Zuletzt bearbeitet:
- Registriert
- Feb. 2004
- Beiträge
- 59
@max40
man könnte doch dann in dem DO-Teil den OuptuFile zusammenbauen und danach ghostscript aufrufen
@ Hallo max40
danke für Deine Hilfe hierbei.
ich verstehe den zitierten code oben nicht wirklich. Das setzen der 2 Variabeln bringt mir nichts so wie ich das sehe. Das ist nichts anderes als die beiden Filenamen direkt anzugeben.
Beim Input könnte ich über einen Umweg wie beschrieben:
gehen.
lst gehen aber wie kann ich dies mit einem multiple Output mit den gleichen Filenamen wie vorher versehen?
man könnte doch dann in dem DO-Teil den OuptuFile zusammenbauen und danach ghostscript aufrufen
Code:
set _input=c:\privat2\xyz.pdf
set _output=c:\privat2_out\xyz.pdf
gswin32c.exe -sDEVICE=pdfwrite -sOutputFile=%_output% -q -dBATCH -dNOPAUSE %_input%
@ Hallo max40
danke für Deine Hilfe hierbei.
ich verstehe den zitierten code oben nicht wirklich. Das setzen der 2 Variabeln bringt mir nichts so wie ich das sehe. Das ist nichts anderes als die beiden Filenamen direkt anzugeben.
Beim Input könnte ich über einen Umweg wie beschrieben:
Code:
for %s in (C:\privat2\*.pdf) do ECHO "%s" >> C:\List\filename
lst gehen aber wie kann ich dies mit einem multiple Output mit den gleichen Filenamen wie vorher versehen?
Zuletzt bearbeitet:
das xyz.pdf muss halt durch den wert auf dem FOR getauscht werden. Wobei ich jetzt nicht die genaue Syntax kenne, da kann dir ggf. google weiter helfen oder jemand anderes.
Code:
set _input=c:\privat2\%%s
set _output=c:\privat2_out\%%s
gswin32c.exe -sDEVICE=pdfwrite -sOutputFile=%_output% -q -dBATCH -dNOPAUSE %_input%
- Registriert
- Feb. 2004
- Beiträge
- 59
ich kann nur sagen
Beim Output funktioniert das @ nicht so wie ich das sehe.
wird sicher nicht funktionieren und beim Input mit einer liste zu arbeiten muss ein @ hin.gswin32c.exe -sDEVICE=pdfwrite -sOutputFile=%_output% -q -dBATCH -dNOPAUSE %_input%
Beim Output funktioniert das @ nicht so wie ich das sehe.
gswin32c.exe -sDEVICE=pdfwrite -sOutputFile=??MultipleSupport mitdem gleichen Inputnamen? -q -dBATCH -dNOPAUSE @%_input%
würde eine eigene Nummerierung ergebengswin32c.exe -sDEVICE=pdfwrite -sOutputFile=C:\privat3\test-%d.pdf -q -dBATCH -dNOPAUSE @%_input%
Zuletzt bearbeitet:
Nachfolgender Code erzeugt das pdfinput_gs Verzeichnis, kopiert alle *.pdf Dateien aus pdfinput nach pdfinput_gs und ruft dann für jede PDF-Datei Ghostscript auf, wobei die Basis-PDF aus dem pdfinput_gs genommen wird und dann nach pdfinput konvertiert. Zum schluss wird das pdfinput_gs verzeichnis gelöscht.
Code:
cd d:\temp\pdfinput\
set PATH=c:\Program Files (x86)\gs\gs9.20\bin\;%PATH%
mkdir "%cd%_gs"
for /r . %%g in (*.pdf) do (
copy "%%g" "%cd%_gs/%%~nxg"
gswin32c.exe -sDEVICE=pdfwrite -sOutputFile="%%g" -q -dBATCH -dNOPAUSE "%cd%_gs/%%~nxg"
)
rd /s /q "%cd%_gs"
Zuletzt bearbeitet:
Ähnliche Themen
- Antworten
- 12
- Aufrufe
- 1.744
- Antworten
- 7
- Aufrufe
- 4.827
- Antworten
- 26
- Aufrufe
- 4.445
- Antworten
- 3
- Aufrufe
- 1.043