PDFSizeopt ist ein Programm zum Konvertieren großer PDF -Dateien in kleine, ohne die visuelle Qualität zu verringern oder interaktive Funktionen zu entfernen (z. B. Hyperlinks). Insbesondere ist PDFSizeopt eine kostenlose, plattformübergreifende Befehlszeilenanwendung (für Linux, Windows, MacOS und UNIX) und eine Sammlung von Best Practices, um die Größe von PDF-Dateien zu optimieren, wobei der Fokus auf PDFs aus Tex- und Latex-Dokumenten liegt. PDFSizeopt ist in Python geschrieben, es ist also etwas langsam, aber es lädt einige der schweren Arbeiten in seine schnelleren Abhängigkeiten (C, C ++ und Java) ab.
Funktioniert PDFSizeopt nicht mit Ihrem PDF? Melden Sie das Problem hier: https://github.com/pts/pdfsizeopt/issues
Senden Sie Spenden an den Autor von PDFSizeopt: https://flattr.com/submit/Auto?user_id=pts&url=https://github.com/pts/pdfsizeopt
Wenn Sie zum ersten Mal pdfizeopt probieren, befolgen Sie diese Anweisungen. (Dieser Abschnitt wurde am 2023-02-15 aktualisiert.)
Es ist einfach, PDFSizeopt auf modernen Linux- und Windows -Systemen mit einem X86 -Prozessor zu installieren und auszuführen. Wenn Sie über ein solches System verfügen, springen Sie direkt in einen der folgenden Abschnitte ( Installationsanweisungen und Verwendung unter Linux- oder Installationsanweisungen und Verwendung unter Windows ). Es dauert weniger als 5 Minuten.
Es ist einfach, PDFSizeopt auf einem Mac zu installieren und auszuführen (sowohl Intel X86 -Prozessoren als auch ARM -Prozessoren mit Apple Silicon). Wenn Sie über ein solches System verfügen, springen Sie direkt in die Anweisungen und Verwendung von MACOS ( nicht mit Docker) zur Installationsanweisungen und Verwendung von Abschnitt). Es dauert weniger als 5 Minuten.
Alternativ (aber nicht empfohlen, weil es langsamer ist) ist es möglich, PDFSizeopt in Docker auf folgenden Systemen auszuführen: Linux AMD64, macOS 64-Bit-Intel X86 (AMD64, X86_64), MacOS 64-Bit-Arm (Apple Silicon, EG M1 oder M2 oder M2 oder M2 oder M2), MacOS 64-Bit-Arm (Apple Silicon, EG M1 oder M2 oder M2, M1 oder M2), MacOS 64-Bit-Arm (Apple Silicon, EG M1 oder M2) Chip). Springen Sie danach direkt zum Abschnitt Installationsanweisungen und verwenden Sie mit Docker unter Linux und MacOS . Dieser letzte Schritt dauert weniger als 5 Minuten.
Wenn Sie ein anderes Betriebssystem als Linux, Windows oder MacOS (auf einem Computer mit Intel -Prozessor) verwenden, besteht der einfachste Weg, PDFSizeopt auszuprobieren, den Computer eines Freundes mit Linux, Windows oder MacOS oder einer Linux -VM in der Cloud zu mieten. Der Grund, warum es schwierig ist, PDFSizeopt auf anderen Arten von Systemen auszuführen Die Abhängigkeiten zuerst, die mehrere Stunden und viele frustrierende Testverhandlungen selbst für erfahrene Hacker dauern können.
Es ist technisch möglich, PDFSizeopt in andere Systeme zu portieren (und es einfach zu installieren), aber der Autor von PDFSizeopt hat nicht die Freizeit, um einen solchen Port zu erstellen und zu verwalten. Als FYI finden Sie #154 über das Portieren von Apple Silicon.
Es gibt keinen Installateur, Sie müssen einige Befehle in der Befehlszeile ausführen, um sie herunterzuladen und zu installieren. PDFSIZEOPT ist eine nur Befehlszeile, die keine GUI gibt.
So installieren Sie PDFSizeopt in einem Linux -System (mit Architektur i386 oder AMD64) ein Terminalfenster und führen Sie diese Befehle aus (ohne die führenden $
):
$ mkdir ~/pdfsizeopt
$ cd ~/pdfsizeopt
$ wget -O pdfsizeopt_libexec_linux.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_libexec_linux-v9.tar.gz
$ tar xzvf pdfsizeopt_libexec_linux.tar.gz
$ rm -f pdfsizeopt_libexec_linux.tar.gz
$ wget -O pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
$ chmod +x pdfsizeopt.single
$ ln -s pdfsizeopt.single pdfsizeopt
Führen Sie den folgenden Befehl aus, um einen PDF zu optimieren:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
Wenn das Eingangspdf viele Bilder oder große Bilder enthält, kann PDFSizeopt sehr langsam sein. Sie können es beschleunigen, indem Sie PNGOUT, die langsamste Bildoptimierungsmethode, wie folgt deaktivieren:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
PDFSizeOpt erstellt im Ausgabeverzeichnis viele temporäre Dateien (PSOTMP.*), räumt aber auch nach sich selbst auf.
Es ist möglich, ein PDF außerhalb des aktuellen Verzeichnisses zu optimieren. Geben Sie dazu den Pfadnamen (einschließlich des Verzeichnisnamens) in der Befehlszeile an.
Bitte beachten Sie, dass die obigen Befehle auch alle Abhängigkeiten (einschließlich Python und Ghostscript) herunterladen. Es ist möglich, einige der Abhängigkeiten mit Ihrem Paketmanager zu installieren, aber diese Schritte gelten als alternativ und komplizierter und werden hier nicht behandelt.
Bitte beachten Sie, dass PDFSizeopt perfekt auf jedem X86- und AMD64 -Linux -System funktioniert. Es gibt keine Einschränkung auf der LIBC, der Linux -Verteilung usw. Da PDFSizeopt nur die statisch verknüpften x86 -Ausführungsgegenstände verwendet und keine externen Befehle verwendet (außer pdfsizeopt, pdfsizeopt.Single und pdfsizeopt_libexec/*) am System. PDFSizeopt arbeitet auch perfekt auf X86 FreeBSD -Systemen, wobei die Linux -Emulationsschicht aktiviert ist.
Um zu vermeiden, dass ~/pdfsizeopt/pdfsizeopt ~/home/pdfsizeopt "zu Ihrem Weg (wahrscheinlich in Ihrem ~/.bashrc) hinzugefügt wird, öffnen Sie ein neues Terminalfenster und der Befehl PDFSizeopt funktioniert aus einem beliebigen Verzeichnis.
Sie können PDFSizeopt auch in ein anderes Verzeichnis als ~/pdfsizeopt einsetzen, wie Sie möchten.
Darüber hinaus können Sie einige zusätzliche Bildimptimisatoren installieren (siehe Abschnitt "Image Optimizers unten):
$ cd ~/pdfsizeopt
$ wget -O pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2017-01-24/pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz
$ tar xzvf pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz
$ rm -f pdfsizeopt_libexec_extraimgopt_linux-v3.tar.gz
Es gibt keinen Installateur. Sie müssen einige Befehle in der Befehlszeile (Black Command -Eingabeaufforderung) ausführen, um sie herunterzuladen und zu installieren. PDFSIZEOPT ist eine nur Befehlszeile, die keine GUI gibt.
Erstellen Sie den Ordner C: pdfsizeopt, laden Sie https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsieopt_win32Exec-v9.zip herunter und extrahieren Sie seine Inhalte in den Ordner c: pdfsiept, so so. Die Datei c: pdfsizeopt pdfsizeopt.exe existiert.
Laden Sie https://raw.githubuSercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single herunter und speichern Sie es in C: pdfsizeopt, als c: pdfsiept pdfsizeopt.single.
Führen Sie den folgenden Befehl aus, um einen PDF zu optimieren:
C:pdfsizeoptpdfsizeopt input.pdf output.pdf
In der Befehlszeile, bei der es sich um ein schwarzes Eingabeaufforderungfenster handelt, können Sie es mit dem Startmenü / run / cmd.exe starten oder die Eingabeaufforderung im Startmenü finden.
(Drücken Sie die Registerkarte, um beim Eingeben von Dateinamen abzuschließen.)
Da Sie den Eingabedateinamen als vollständigen Pfadnamen eingeben müssen, wird empfohlen, ein Verzeichnis mit einem kurzen Namen (zB C: pdfs) zu erstellen und zuerst die Eingabepdf zu kopieren.
Wenn das Eingangspdf viele Bilder oder große Bilder enthält, kann PDFSizeopt sehr langsam sein. Sie können es beschleunigen, indem Sie PNGOUT, die langsamste Bildoptimierungsmethode, wie folgt deaktivieren:
C:pdfsizeoptpdfsizeopt --use-pngout=no input.pdf output.pdf
Um zu vermeiden, dass C: pdfsizeopt pdfsizeopt C: pdfsizeopt zu (dem Ende) dem Systempfad hinzufügen, öffnen Sie ein neues Eingabeaufforderungfenster und der Befehl pdfsizeopt
funktioniert aus einem beliebigen Verzeichnis.
Abhängig von Ihrer Umgebung funktionieren Dateinamen mit akzentuierten Zeichen möglicherweise nicht in der Windows -Version von PDFSizeopt. Stellen Sie sicher, dass Ihre Eingabe- und Ausgabedateien Namen mit Buchstaben, Zahlen, Unterstrichen (_), Dash (-), DOT (.) Und Plus (+) haben. Der Backslash () und der Schrägstrich (/) sind beide in Ordnung als Verzeichnisabscheider.
Leerzeichen in Dateinamen und Pfadnamen sollten funktionieren, aber Sie müssen doppelte Zitate (") um den Namen legen.
Dateinamen mit einigen Interpunktionszeichen (z. B. Double Quote ("), Fragezeichen (?) Und Asterisk ( )) und nicht printable Zeichen (wie Newline) funktionieren nicht unter Windows. Dies liegt daran, dass Windows diese Zeichen nicht unterstützt ([[[[ x00 .. x1f " : <>? | x7f] in Dateinamen überhaupt, und es wird / und als Verzeichnistrenntrennzeichen verwendet.
Sie können PDFSizeopt auch in ein anderes Verzeichnis als C: pdfsizeopt einfügen, aber es funktioniert nicht, wenn es in einem der Ordnernamen Akzentzeichen gibt.
Bitte beachten Sie, dass PDFSizeopt perfekt in Wein arbeitet (getestet mit Wine-1.2 auf Ubuntu Lucid und Wine-1.6.2 auf Ubuntu vertrauenswürdig), aber es ist etwas langsamer als es nativ (als Linux- oder UNIX-Programm).
Diese Anweisungen funktionieren auf folgenden Systemen: Linux AMD64, MacOS 64-Bit Intel X86 (AMD64, X86_64), MacOS 64-Bit-Arm (Apple Silicon, z. B. M1 oder M2-Chip). Die Version von Linux oder MacOS spielt keine Rolle (alte Systeme wie MacOS Leopard 10.5 funktionieren auch), solange Docker installiert und funktioniert.
Die Programme im Docker Image PTSPTS/PDFSIZEOPT werden für Linux i386 (32-Bit-Intel X86) zusammengestellt, und diese Binärdateien funktionieren zufällig auf allen oben genannten Plattformen, auch mit Apple Silicon. (Getestet am 2023-02-21.)
Es gibt keinen Installateur, Sie müssen einige Befehle in der Befehlszeile ausführen, um sie herunterzuladen und zu installieren. PDFSIZEOPT ist eine nur Befehlszeile, die keine GUI gibt.
Überprüfen Sie zunächst, dass Sie Docker ordnungsgemäß installiert haben, indem Sie diesen Befehl ausführen und am Ende auf das OK überprüfen:
docker version && echo OK
Wenn Sie nicht in Ordnung sind, weil der Befehl "Docker" nicht gefunden wurde, ist Docker nicht auf Ihrem Computer installiert. Installationsanweisungen (unter 2023-02-22):
Um Docker unter Linux zu installieren, haben Sie zwei Optionen: Docker Engine (https://docs.docker.com/engine/install/, innerhalb des Serverabschnitts) oder Docker Desktop (https://docs.docker.com/desktop/ Installieren/Linux-Installation/). Jeder von ihnen würde funktionieren.
So installieren Sie Docker auf MacOS, installieren Sie Docker Desktop (https://docs.docker.com/desktop/install/mac-install/).
Fügen Sie dann (auf macOS) den Befehl docker
zu Ihrem Pfad hinzu, indem Sie den folgenden Befehl ausführen (kopieren Sie ihn, geben Sie ihn nicht ein, um Tippfehler zu vermeiden):
(echo; echo 'export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH"') >>~/.profile
Dann (auf macOS) schließen Sie die Terminal -App und öffnen Sie sie erneut (so dass sich ~/.Profile wirksam wechselt).
Nach der Installation den obigen docker version
-Versionsbefehl erneut wiederholen.
Entfernen Sie frühere Docker -Bilder von PDFSizeopt:
docker image rm ptspts/pdfsizeopt
Führen Sie einen Testoptimierungslauf durch, der alle Abhängigkeiten von PDFSizeopt ausübt:
curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt deptest.pdf
Wenn Sie eine (harmlose) Warnmeldung wie er erhalten
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
, und Sie möchten es nicht wieder bekommen, dann fügen Sie nach dem -it
--platform linux/amd64
hinzu:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it --platform linux/amd64 ptspts/pdfsizeopt pdfsizeopt deptest.pdf
Führen Sie diesen Befehl aus, um einen PDF zu optimieren, um diesen Befehl auszuführen:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt input.pdf output.pdf
Wenn das Eingangspdf viele Bilder oder große Bilder enthält, kann PDFSizeopt sehr langsam sein. Sie können es beschleunigen, indem Sie PNGOUT, die langsamste Bildoptimierungsmethode, wie folgt deaktivieren:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt --use-pngout=no input.pdf output.pdf
PDFSizeOpt erstellt im Ausgabeverzeichnis viele temporäre Dateien (PSOTMP.*), räumt aber auch nach sich selbst auf.
Es ist möglich, ein PDF außerhalb des aktuellen Verzeichnisses zu optimieren. Geben Sie dazu den Pfadnamen (einschließlich des Verzeichnisnamens) in der Befehlszeile an.
Um einen langen Befehl zu vermeiden, laufen Sie aus
(echo '#! /bin/sh'; echo 'exec docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt "$@"') >pdfsizeopt && chmod 755 pdfsizeopt
, und kopieren Sie dann das PDFSizeOpt -Skript in Ihren Pfad und öffnen Sie dann ein neues Terminalfenster, und jetzt funktioniert dieser Befehl auch, um einen PDF zu optimieren:
pdfsizeopt input.pdf output.pdf
Bitte beachten Sie, dass das PTSPTS/PDFSIZEOPT -Docker -Bild sehr selten aktualisiert wird. Führen Sie diese Befehle zum Herunterladen aus:
curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
chmod +x pdfsizeopt.single
Führen Sie dann diesen Befehl aus, um einen PDF zu optimieren:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt ./pdfsizeopt.single --use-pngout=no input.pdf output.pdf
Wenn Sie zusätzliche Bildoptimierer unter Linux enthalten möchten, verwenden Sie PTSPTS/PDFSIZEOPT-WITH-Extraimgopt anstelle von PTSPTS/PDFSIZEOPT in den obigen Befehlen. Beispiel:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt-with-extraimgopt pdfsizeopt --use-image-optimizer=sam2p,jbig2,pngout,zopflipng,optipng,advpng,ECT input.pdf output.pdf
Diese Anweisungen funktionieren auf Macs mit MacOS Catalina 10.15 (und sogar älter, vielleicht macOS Snow Leopard 10.6)-MacOS Ventura 13 (und noch neuer), mit einem 64-Bit-Armprozessor (Apple Silicon) oder einem 64-Bit-Intel X86 (64-Bit-Intel X86 ( X86_64, AMD64) Prozessor. Die Programme werden für 64-Bit-Intel X86-Prozessoren zusammengestellt und arbeiten auch an 64-Bit-Armprozessoren, wobei die Rosetta 2-Emulation in MacOS verwendet wird. Diese Anweisungen wurden getestet und dafür bekannt, dass sie auf MacOS Ventura 13.3 funktionieren, beide mit 64-Bit-Intel X86 (x86_64, AMD64) -Prozessor und Apple Silicon (ARM-Prozessor).
Wenn Sie über einen älteren Mac aus Mac OS X Leopard 10.5 - MacOS Mojave 10.14 ausgeführt werden, befolgen Sie stattdessen die Installationsanweisungen und Verwendung von älteren MacOs .
Diese Anweisungen werden noch nicht getestet. Siehe #154 für Fortschrittsaktualisierungen.
Es gibt keinen Installateur, Sie müssen einige Befehle in der Befehlszeile ausführen, um sie herunterzuladen und zu installieren. PDFSIZEOPT ist eine nur Befehlszeile, die keine GUI gibt.
Öffnen Sie ein Terminalfenster und führen Sie diese Befehle aus (ohne die führenden $
), um PDFSizeopt auf einem MacOS -System zu installieren:
$ mkdir ~/pdfsizeopt
$ cd ~/pdfsizeopt
$ curl -L -o pdfsizeopt_libexec_darwin.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_libexec_darwinc64-v9.tar.gz
$ tar xzvf pdfsizeopt_libexec_darwin.tar.gz
$ rm -f pdfsizeopt_libexec_darwin.tar.gz
$ curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
$ chmod +x pdfsizeopt.single
$ ln -s pdfsizeopt.single pdfsizeopt
Führen Sie einen Testoptimierungslauf durch, der alle Abhängigkeiten von PDFSizeopt ausübt:
$ curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
$ ~/pdfsizeopt/pdfsizeopt deptest.pdf
... und öffnen (Ansicht) Deptest.pdf und die entsprechenden optimierten Deptest.pso.pdf.
Führen Sie den folgenden Befehl aus, um einen PDF zu optimieren:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
Wenn das Eingangspdf viele Bilder oder große Bilder enthält, kann PDFSizeopt sehr langsam sein. Sie können es beschleunigen, indem Sie PNGOUT, die langsamste Bildoptimierungsmethode, wie folgt deaktivieren:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
Wenn Sie einen 32-Bit-Mac haben, funktioniert das mit PDFSizeopt gebündelte PNGOUT nicht (da er einen 64-Bit-Mac benötigt), also müssen Sie erzwingen-Use-Pngout = nein. In den Abschnittsbild -Optimierern finden Sie Alternativen von PNGout.
PDFSizeOpt erstellt im Ausgabeverzeichnis viele temporäre Dateien (PSOTMP.*), räumt aber auch nach sich selbst auf.
Es ist möglich, ein PDF außerhalb des aktuellen Verzeichnisses zu optimieren. Geben Sie dazu den Pfadnamen (einschließlich des Verzeichnisnamens) in der Befehlszeile an.
Bitte beachten Sie, dass die obigen Befehle die meisten Abhängigkeiten (einschließlich Ghostscript, aber auch Python) herunterladen. Alles sollte wie oben angegeben funktionieren. Wenn Sie Probleme haben, melden Sie bitte ein Problem unter https://github.com/pts/pdfsizeopt/issues.
Um zu vermeiden, dass ~/pdfsizeopt/pdfsizeopt ~/home/pdfsizeopt "zu Ihrem Weg (wahrscheinlich in Ihrem ~/.bashrc) hinzugefügt wird, öffnen Sie ein neues Terminalfenster und der Befehl PDFSizeopt funktioniert aus einem beliebigen Verzeichnis.
Sie können PDFSizeopt auch in ein anderes Verzeichnis als ~/pdfsizeopt einsetzen, wie Sie möchten.
Diese Anweisungen sollten auf älteren MACs funktionieren, die Mac OS X Leopard 10.5-MacOS Mojave 10.14 und einen 32-Bit- oder 64-Bit-Intel X86-Prozessor haben. Die Programme werden für den 32-Bit-Intel X86 (i386) -Prozessor (und arbeiten auch an einem 64-Bit-Intel-Prozessor mit MacOS Mojave 10.14 oder früher) zusammen Ein 64-Bit-Intel-Prozessor.
Es gibt keinen Installateur, Sie müssen einige Befehle in der Befehlszeile ausführen, um sie herunterzuladen und zu installieren. PDFSIZEOPT ist eine nur Befehlszeile, die keine GUI gibt.
Öffnen Sie ein Terminalfenster und führen Sie diese Befehle (ohne die führenden $
) aus, um PDFSizeopt in einem älteren MacOS -System zu installieren:
$ mkdir ~/pdfsizeopt
$ cd ~/pdfsizeopt
$ curl -L -o pdfsizeopt_libexec_darwin.tar.gz https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_libexec_darwin-v9.tar.gz
$ tar xzvf pdfsizeopt_libexec_darwin.tar.gz
$ rm -f pdfsizeopt_libexec_darwin.tar.gz
$ curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
$ chmod +x pdfsizeopt.single
$ ln -s pdfsizeopt.single pdfsizeopt
Führen Sie einen Testoptimierungslauf durch, der alle Abhängigkeiten von PDFSizeopt ausübt:
$ curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
$ ~/pdfsizeopt/pdfsizeopt deptest.pdf
... und öffnen (Ansicht) Deptest.pdf und die entsprechenden optimierten Deptest.pso.pdf.
Führen Sie den folgenden Befehl aus, um einen PDF zu optimieren:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
Wenn das Eingangspdf viele Bilder oder große Bilder enthält, kann PDFSizeopt sehr langsam sein. Sie können es beschleunigen, indem Sie PNGOUT, die langsamste Bildoptimierungsmethode, wie folgt deaktivieren:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
Wenn Sie einen Mac mit einem 32-Bit-Intel X86-Prozessor haben, funktioniert der mit PDFSizeopt gebündelte Pngout nicht nicht (da er einen 64-Bit-Prozessor benötigt), sodass Sie erzwingen müssen-Use-Pngout = Nr. In den Abschnittsbild -Optimierern finden Sie Alternativen von PNGout.
PDFSizeOpt erstellt im Ausgabeverzeichnis viele temporäre Dateien (PSOTMP.*), räumt aber auch nach sich selbst auf.
Es ist möglich, ein PDF außerhalb des aktuellen Verzeichnisses zu optimieren. Geben Sie dazu den Pfadnamen (einschließlich des Verzeichnisnamens) in der Befehlszeile an.
Bitte beachten Sie, dass die obigen Befehle die meisten Abhängigkeiten (einschließlich Ghostscript, aber auch Python) herunterladen. Alles sollte wie oben angegeben funktionieren. Wenn Sie Probleme haben, melden Sie bitte ein Problem unter https://github.com/pts/pdfsizeopt/issues.
Um zu vermeiden, dass ~/pdfsizeopt/pdfsizeopt ~/home/pdfsizeopt "zu Ihrem Weg (wahrscheinlich in Ihrem ~/.bashrc) hinzugefügt wird, öffnen Sie ein neues Terminalfenster und der Befehl PDFSizeopt funktioniert aus einem beliebigen Verzeichnis.
Sie können PDFSizeopt auch in ein anderes Verzeichnis als ~/pdfsizeopt einsetzen, wie Sie möchten.
Es gibt keinen Installateur, Sie müssen einige Befehle in der Befehlszeile ausführen, um sie herunterzuladen und zu installieren. PDFSIZEOPT ist eine nur Befehlszeile, die keine GUI gibt.
PDFSizeopt arbeitet perfekt auf X86 FreeBSD -Systemen, wobei die Linux -Emulationsschicht aktiviert ist. Aktivieren Sie also die Linux -Emulationsschicht in Ihrem FreeBSD -System und befolgen Sie dann die Installationsanweisungen und die Verwendung unter Linux .
Alternativ können Sie die Installationsanweisungen und die Verwendung von generischen Unix befolgen, aber dies erfordert viel mehr Arbeit in Ihrem Teil (und es ist unangemessen und fehleranfällig), da Sie viele Abhängigkeiten separat installieren müssen, wodurch einige von ihnen möglicherweise aus der Quelle zusammengestellt werden.
Dies wird im Jahr 2023 immer schwieriger, da PDFSizeopt Python 2.4--2.7 und Ghostscript 9.05, sowohl sehr alt als auch so schwer in ein modernes System zu installieren, benötigt.
Es gibt keinen Installateur. Sie müssen einige Befehle in der Befehlszeile (Black Command -Eingabeaufforderung) ausführen, um sie herunterzuladen und zu installieren. PDFSIZEOPT ist eine nur Befehlszeile, die keine GUI gibt.
pdfizept ist ein Python -Skript. Es funktioniert mit Python 2.4, 2,5, 2,6 und 2,7 (aber es funktioniert nicht mit Python 3.x). Also bitte zuerst Python installieren.
Erstellen Sie ein neu
Benennen Sie es in pdfsizeopt um und machen Sie es ausführbar, indem Sie die folgenden Befehle ausführen (ohne die führenden $
):
$ cd pdfsizeopt
$ mv pdfsizeopt.single pdfsizeopt
$ chmod +x pdfsizeopt
Wenn Ihre Python -ausführbare Datei nicht/usr/bin/python ist, bearbeiten Sie die erste Zeile (beginnend mit #!
) Im PDFSizeOpt -Skript entsprechend.
Versuchen Sie es mit:
$ ./pdfsizeopt --version
info: This is pdfsizeopt ZIP rUNKNOWN size=105366.
PDFSizeopt hat viele Abhängigkeiten. Für die volle Funktionalität benötigen Sie alle. Installieren Sie so viele wie möglich und setzen Sie sie auf den Weg.
Abhängigkeiten:
imgdataopt
-Programmdatei als sam2p
(EG/USR/lokal/bin/bin/sam2p) zu verwenden, in Ihre Programmdatei in Ihr Programm zu verwenden (EG/USR/lokal/bin/sam2p) in Ihr Ihre Programmdatei in Ihr Programm zu verwenden (EG/usr/lokal/bin/sAM2p), in Ihr Ihre Programmdatei in Ihr Programm zu verwenden, in Ihr Programm. WEG. Wenn Sie es nicht installieren können, verwenden Sie PDFSizeopt--Do-optimize-Images = Nr. Einige Linux -Verteilungen haben SAM2P -Binärdateien, aber sie sind in der Regel zu alt. Alternativ funktioniert SAM2P> = 0,49,3 + PNG22PNM auch anstelle von imgdataopt, aber imgdataopt ist einfacher zu installieren.Verwenden Sie nach der Installation PDFSizeopt als:
$ ./pdfsizeopt input.pdf output.pdf
Sie können das Verzeichnis mit PDFSizeopt zum Pfad hinzufügen, sodass der Befehl pdfsizeopt
aus jedem Verzeichnis funktioniert.
PDFSizeOpt kann die folgenden externen Tools verwenden, um Bilder in eingebetteten PDF -Dateien kleiner zu machen:
Um einen Bildoptimierer zu aktivieren oder zu deaktivieren, geben Sie alle Bildoptimierer an, die Sie wie folgt aktivieren möchten:-Use-Image-optimizer = optipng, JBIG2. Dies deaktiviert auch den Standard -PNGout.
Sie können auch benutzerdefinierte Befehlsmuster für Bildoptimierer angeben, indem Sie separate, zusätzliche-Use-Image-optimier = Flags wie folgt angeben:
--use-image-optimizer="optipng %(sourcefnq)s -o6 -fix -force %(optipng_gray_flags)s-out %(targetfnq)s"
Im Befehlsmuster müssen Sie immer %(targetFNQ) angeben.
Geben Sie-do-debug-image-optimizierer = Ja, um zu sehen, welche Bildoptimierer für den aktuellen Lauf aktiviert sind (und ihre vollständige Befehlszeile).
Beim Start überprüft PDFSizeopt, dass die angeforderten Bildoptimierer verfügbar sind (als Programmdateien), und fehlschlägt fehl, wenn einige von ihnen fehlen. Um diejenigen zu ignorieren, die fehlen, geben Sie-Do-Require-Image-Optimizer = Nr. Nr.
Es liegt in der Verantwortung des (Benutzers), die Image -Optimierer zu installieren und sie dem Pfad hinzuzufügen. Wenn Sie die Installationsanweisungen für Windows und Linux oben befolgen, werden für Sie die Standard -Image -Optimierer (SAM2P, JBIG2 und PNGOUT) installiert. Für Linux finden Sie auch Installationsanweisungen für zusätzliche Bildoptimierer (ZOPFLIPNG, OPTIPNG, ADVPNG und ECT).
Geben Sie-do-unger-fonts = no und--do-regenerat-alle-fonts = no.
Wenn es noch fehlschlägt, geben Sie-do-optimize-fonts = no.
In beiden Fällen melden Sie es bitte unter https://github.com/pts/pdfsizeopt/issues
Angeben-do-optimize-Images = Nr.
Bitte melden Sie es unter https://github.com/pts/pdfsizeopt/issues
Angeben-use-pngout = no. Dies deaktiviert PNGout, was der langsamste Optimierungsschritt für Bilder ist.
Bitte melden Sie es unter https://github.com/pts/pdfsizeopt/issues, wobei die Eingabe -PDF -Datei und die Konsolenausgabe von PDFSizeopt anhängen. Ihr Bericht wird sehr geschätzt.
Wenn PDFSizeopt mit einer ungewöhnlichen Ausnahme beendet ist, kann es im aktuellen Verzeichnis einige temporäre Dateien (psotmp.*) Hinter sich lassen. Sie können diese Dateien entfernen.
Bitte beachten Sie, dass PDFSizeopt bei der Verarbeitung korrupter PDF -Dateien nicht widerstandsfähig ist (dh diejenigen, die nicht dem PDF -Standard entsprechen). Wenn PDFSizeopt fehlschlägt, kann der Grund ein Fehler in PDFSizeopt oder einer beschädigten PDF -Eingabedatei sein. Bitte melden Sie jedoch bitte ein Problem (siehe oben).
Bitte melden Sie es unter https://github.com/pts/pdfsizeopt/issues, das Anhängen der Eingabe -PDF -Datei und der Ausgabe -PDF -Datei (.pso.pdf) und der Konsolenausgabe von PDFSizeopt. Ihr Bericht wird sehr geschätzt.
Dies kann passieren, wenn der Dateiname oder der vollständige Pfadname ein anderes Zeichen als die ASCII-Buchstaben (AZ und AZ), Ziffern (0-9), Undercore (_), ASCII-Dash (-), plus (+), dot (. ), Backslash () oder Schrägstrich (/). Normalerweise funktionieren diese Charaktere nicht:
Leerzeichen und Registerkarten: Dies ist einfach zu beheben. Wickeln Sie einfach den Dateinamen in Doppelzitaten ("), die übliche Weise.
Doppelzitate ("): Dies kann nicht passieren, Dateinamen unter Windows dürfen keine doppelten Zitate enthalten. Wenn Sie ein Nicht-Film-Argument mit einem doppelten Zitat an pdfsizeopt übergeben müssen, wickeln Sie das Argument im doppelten Argument ein. Zitate ("), ersetzen Sie alle doppelten Zitate (") durch "und (parallel zum vorherigen Ersatz) und ersetzen Sie eine Sequenz -Backslashes () und ein Doppelzitat (") unmittelbar nach ihnen, indem sie die Backslashes duplizieren und das doppelte Zitat (Doppelzitat ") Mit" klingt das kompliziert, aber das ist auch für andere Programme, siehe https://stackoverflow.com/a/4094897/97248.
Newlines und andere Nicht-Raum-Whitespace: Dies funktioniert nicht, die Windows-Eingabeaufforderung (CMD.EXE) erlaubt diese Zeichen nicht in Befehlszeilenargumenten. Auch Windows erlaubt ihnen nicht in Dateinamen.
Akzent -Zeichen (wie á und ő). Diese Zeichen funktionieren nicht (oder es kann möglicherweise nur für einige Zeichen funktionieren, abhängig von der aktiven Codeseite) im PDF -Dateinamen, das in der Befehlszeile angegeben ist Bőr, es wird nicht funktionieren).
Akzentierte Zeichen (außerhalb der aktiven Code -Seite) funktionieren nicht im vollständigen Pfadnamen von PDFSizeopt (wie C: bőr pdfsizeopt.exe). Das liegt daran, dass Python keine externen Programme (Os.System, Os.popen, Os.spawnl und Subprocess.Call) mit Akzentzeichen in ihrem Namen aufrufen kann, da sie die Single-Byte-API verwendet.
Alles, was nicht ascii druckbar ist (Code zwischen 33 und 126, einschließlich): Wenn nicht oben abgedeckt ist, kann dies möglicherweise nicht funktioniert. Siehe die Beschreibung der akzentuierten Zeichen.
Wenn einige Dateinamen immer noch nicht funktionieren, sind die Problemumgehungen:
Akzent -Zeichen im PDF -Dateinamen könnten auf die folgende Weise arbeiten (als zukünftige Verbesserungsarbeit gegenüber PDFSizeopt):
pdfsizeopt.exe sollte die 16-Bit-API (getCommandlinew) anstelle der Single-Byte-API (getCommandlinea) aufrufen, um die Argumente zu erhalten
pdfsizeopt.exe sollte den Nicht-ASCII-Zeichen in den Argumenten entkommen (z. B. U+12AB)
pdfsizeopt.exe sollte pdfsizeopt.Single so ausgeführt werden:
.../pdfsizeopt_win32exec/pdfsizeopt_python.exe .../pdfsizeopt.single --Args-u+ ...
PDFSIZEOPT Python Code sollte erkennen-args-u+, und beim Finden des Dateinamen . Solch ein offenes (...) funktioniert in Python 2.6 unter Windows.
Bei der Anzeige von Dateinamen sollte der PDFSIZEOPT -Python -Code den ASCII weiterhin angezeigt, wobei der U+12AB entkommt. Somit ist das Win32Console -Modul nicht benötigt. Daher werden Dateinamen im Eingabeaufforderungfenster legly, aber falsch angezeigt (nicht kopieren).
In Befehlszeilen von Helferprogrammen (z. B. GS, SAM2P) ist keine Entfernung erforderlich, da es sich um alle ASCII handelt, da Dateinamen temporäre FIL -Namen sind, die alle ASCII sind, und dem Pfad zu PDFSizeopt selbst ist für die ASCII erforderlich.
Akzentierte Zeichen im Pfadname von PDFSizeOpt.Single können auf diese Weise arbeiten (als zukünftige Verbesserungsarbeit gegenüber PDFSizeopt):
Machen Sie die akzentuierten Zeichen im obigen Dateinamen zuerst.
pdfsizeopt.exe sollte WGetCWD verwenden, um das aktuelle Verzeichnis zu erhalten.
pdfsizeopt.exe sollte WCHDIR verwenden, um das Verzeichnis von pdfsizeopt.Single zu ändern.
pdfsizeopt.exe sollte die Verzeichnisse pdfsizeopt_win32Exec und pdfsizeopt_win32exec/pdfsizeopt_gswin zum Pfad unter Verwendung von WPutenV vorbereiten.
pdfsizeopt.exe sollte pdfsizeopt.Single so ausgeführt werden:
pdfsizeopt_python.exe pdfsizeopt.single --args-u+ --cwd=... ...
, wobei der Wert von -cwd = die entkommene (U+12AB) -Version des Ergebniss von WGetCWD ist.
Der PDFSIZEOPT -Python -Code sollte den Wert von -cwd = ... auf den Eingabedateinamen vorbereiten, wenn er relativ ist.
Der PDFSIZEOPT -Python -Code sollte den Pfad nicht ändern, wenn - -cwd = ... vorhanden ist. (Funktioniert diese Umgebungsvariable in Python 2.6. Versuchen wir es!)
Es ist immer noch wahr, dass in Befehlszeilen externer Programme (z. B. SAM2P) keine Flucht benötigt wird, da es sich nur um ASCII handelt, da temporäre Dateinamen alle ASCII sind und der ASCII für PDFSizeopt selbst einen Pfad ist. Es ist ein Entkommen erforderlich, wenn der Pfadname des temporären Verzeichnisses (TEMP -Variable) entkommen muss.
Dieser Fehler ist auf einem Windows XP -System stattgefunden. Die Lösung: Laden Sie msvcr90.dll herunter (oder finden Sie sie irgendwo in Ihrem System) und kopieren Sie sie in pdfsizeopt_win32Exec (neben Python26.dll). Jede Version von msvcr90.dll funktioniert:
Dieser Fehler ist in einem Windows XP -System aufgetreten, als die Datei microsoft.vc90.crt.manifest im Verzeichnis pdfsizeopt_win32Exec fehlte. Die Lösung: Das Verzeichnis pdfsizeopt_win32Exec in der neuesten Version hat diese Datei neu.
Bitte installieren Sie PDFSizeOpt, indem Sie die Installationsanweisungen unter https://github.com/pts/pdfsizeopt befolgen. Auf diese Weise wird PDFSizeopt Ghostscript 9.05 damit gebündelt, und es wird funktionieren.