PDFSizeOpt adalah program untuk mengubah file PDF besar menjadi yang kecil, tanpa mengurangi kualitas visual atau menghapus fitur interaktif (seperti hyperlink). Lebih khusus lagi, PDFSizeOpt adalah aplikasi baris perintah lintas platform gratis (untuk Linux, Windows, MacOS dan UNIX) dan kumpulan praktik terbaik untuk mengoptimalkan ukuran file PDF, dengan fokus pada PDF yang dibuat dari dokumen TEX dan lateks. PDFsizeOpt ditulis dalam Python, jadi agak lambat, tetapi membongkar beberapa pekerjaan berat untuk ketergantungannya yang lebih cepat (C, C ++ dan Java).
Bukankah PDFSizeOpt bekerja dengan PDF Anda? Laporkan masalahnya di sini: https://github.com/pts/pdfsizeopt/issues
Kirim Donasi ke Penulis PDFSIZEOPT: https://flattr.com/submit/auto?user_id=pts&url=https://github.com/pts/pdfsizeopt
Jika ini adalah pertama kalinya Anda mencoba pdfizeOpt, ikuti instruksi ini. (Bagian ini diperbarui pada 2023-02-15.)
Sangat mudah untuk menginstal dan menjalankan PDFSIZEOPT pada sistem Linux dan Windows modern dengan prosesor X86. Jika Anda memiliki sistem seperti itu, lompat langsung ke salah satu bagian berikut ( instruksi pemasangan dan penggunaan pada Linux atau instruksi instalasi dan penggunaan pada windows ). Ini akan memakan waktu kurang dari 5 menit.
Mudah untuk menginstal dan menjalankan PDFSIZEOPT pada Mac (baik prosesor Intel X86 dan prosesor ARM dengan silikon apel didukung). Jika Anda memiliki sistem seperti itu, lompat langsung ke instruksi pemasangan bagian dan penggunaan pada macOS ( tidak menggunakan Docker). Ini akan memakan waktu kurang dari 5 menit.
Atau (tetapi tidak disarankan karena lebih lambat), dimungkinkan untuk menjalankan PDFsizeOpt di dalam Docker pada sistem berikut: Linux AMD64, MacOS 64-bit Intel X86 (AMD64, x86_64), lengan macOS 64-bit (Apple Silicon, EG M1 atau M2 chip). Setelah itu, lompat langsung ke instruksi pemasangan bagian dan penggunaan dengan Docker di Linux dan MacOS . Langkah terakhir itu akan memakan waktu kurang dari 5 menit.
Jika Anda menggunakan sistem operasi selain Linux, Windows atau MacOS (pada komputer dengan prosesor Intel), cara termudah untuk mencoba PDFSIZEOPT adalah meminjam komputer teman dengan Linux, Windows atau MacOS, atau menyewa Linux VM di cloud. Alasan mengapa sulit untuk menjalankan PDFSIZEOPT pada jenis sistem lain adalah karena PDFsizeOpt memiliki beberapa dependensi yang diperlukan, beberapa di antaranya adalah versi lama (misalnya Python 2.4--2.7, Ghostscript 9.05), jadi Anda harus mengkompilasi versi yang tepat dari Ketergantungan terlebih dahulu, yang mungkin memakan waktu beberapa jam dan banyak percobaan dan kesalahan yang membuat frustrasi bahkan untuk peretas yang berpengalaman.
Secara teknis dimungkinkan untuk port pdfsizeOpt ke sistem lain (dan memudahkan untuk menginstal), tetapi penulis PDFSIZEOPT tidak memiliki waktu luang untuk membuat dan mempertahankan port tersebut. Sebagai FYI, lihat #154 tentang porting ke Apple Silicon.
Tidak ada penginstal, Anda perlu menjalankan beberapa perintah di baris perintah untuk mengunduh dan menginstal. PDFSIZEOPT adalah aplikasi hanya baris perintah, tidak ada GUI.
Untuk menginstal PDFSizeOpt pada sistem Linux (dengan Arsitektur I386 atau AMD64), buka jendela terminal dan jalankan perintah ini (tanpa $
terkemuka):
$ 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
Untuk mengoptimalkan PDF, jalankan perintah berikut:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
Jika input PDF memiliki banyak gambar atau gambar besar, PDFSizeOpt bisa sangat lambat. Anda dapat mempercepatnya dengan menonaktifkan PNGout, metode optimasi gambar paling lambat, seperti ini:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
PDFSizeOpt membuat banyak file sementara (psotmp.*) Di direktori output, tetapi juga membersihkan setelah itu.
Dimungkinkan untuk mengoptimalkan PDF di luar direktori saat ini. Untuk melakukan itu, tentukan pathname (termasuk nama direktori) di baris perintah.
Harap dicatat bahwa perintah di atas unduh semua dependensi (termasuk Python dan Ghostscript) juga. Dimungkinkan untuk menginstal beberapa dependensi dengan manajer paket Anda, tetapi langkah -langkah ini dianggap sebagai alternatif dan lebih rumit, dan karenanya tidak tercakup di sini.
Harap dicatat bahwa PDFSIZEOPT bekerja dengan sempurna pada sistem X86 dan AMD64 Linux. Tidak ada batasan pada distribusi LIBC, Linux dll. Karena PDFSizeOpt hanya menggunakan eksekutif X86 yang dikaitkan secara statis, dan tidak menggunakan perintah eksternal apa pun (selain PDFSIZEOPT, PDFSIZEOPT.SINGLE dan PDFSIZEOPT_LIBEXEC/*) pada sistem. PDFSIZEOPT juga bekerja dengan sempurna pada sistem FreeBSD x86 dengan lapisan emulasi Linux diaktifkan.
Untuk menghindari pengetikan ~/pdfsizeOpt/pdfsizeOpt, tambahkan "$ home/pdfsizeOpt" ke jalur Anda (mungkin di ~/.bashrc Anda), buka jendela terminal baru, dan perintah pdfsizeopt Anda akan bekerja dari direktori mana pun.
Anda juga dapat menempatkan PDFSizeOpt ke direktori selain ~/pdfsizeOpt, sesuka Anda.
Selain itu, Anda dapat menginstal beberapa ImPtimizers gambar tambahan (lihat lebih lanjut di bagian Pengoptimal Gambar di bawah):
$ 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
Tidak ada penginstal, Anda perlu menjalankan beberapa perintah di baris perintah (jendela prompt perintah hitam) untuk diunduh dan diinstal. PDFSIZEOPT adalah aplikasi hanya baris perintah, tidak ada GUI.
Create folder C:pdfsizeopt, download https://github.com/pts/pdfsizeopt/releases/download/2023-04-18/pdfsizeopt_win32exec-v9.zip , and extract its contents to the folder C:pdfsizeopt, so that File C: PDFSIZEOPT PDFSIZEOPT.EXE ada.
Unduh https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single dan simpan ke c: pdfsizeopt, sebagai c: pdfsizeopt pdfsizeopt.single.
Untuk mengoptimalkan PDF, jalankan perintah berikut:
C:pdfsizeoptpdfsizeopt input.pdf output.pdf
Di baris perintah, yang merupakan jendela prompt perintah hitam, Anda dapat memulainya dengan start menu / run / cmd.exe, atau menemukan prompt perintah di menu start.
(Tekan tab untuk mendapatkan penyelesaian nama file saat mengetik.)
Karena Anda harus mengetikkan nama file input sebagai nama path penuh, disarankan untuk membuat direktori dengan nama pendek (misalnya C: pdfs), dan salin input PDF di sana terlebih dahulu.
Jika input PDF memiliki banyak gambar atau gambar besar, PDFSizeOpt bisa sangat lambat. Anda dapat mempercepatnya dengan menonaktifkan PNGout, metode optimasi gambar paling lambat, seperti ini:
C:pdfsizeoptpdfsizeopt --use-pngout=no input.pdf output.pdf
Untuk menghindari pengetikan C: PDFSIZEOPT PDFSIZEOPT, tambahkan C: PDFSIZEOPT ke (akhir) jalur sistem, buka jendela prompt perintah baru, dan perintah pdfsizeopt
akan berfungsi dari direktori mana pun.
Bergantung pada lingkungan Anda, nama file dengan karakter beraksen mungkin tidak berfungsi dalam versi Windows PDFsizeOpt. Untuk memainkannya dengan aman, pastikan file input dan output Anda memiliki nama dengan huruf, angka, underscore (_), dash (-), dot (.) Dan plus (+). Backslash () dan slash (/) keduanya baik -baik saja sebagai pemisah direktori.
Ruang dalam nama file dan jame harus berfungsi, tetapi Anda harus menaruh kutipan ganda (") di sekitar nama.
Nama file dengan beberapa karakter tanda baca (seperti kutipan ganda ("), tanda tanya (?) Dan tanda bintang ( )) dan karakter yang tidak dapat dicetak (seperti newline) tidak akan bekerja pada windows. Ini karena windows tidak mendukung karakter ini ([ x00 .. x1f " : <>? | x7f] Dalam nama file sama sekali, dan menggunakan / dan sebagai pemisah direktori.
Anda juga dapat menempatkan PDFSizeOpt ke direktori selain C: PDFsizeOpt, tetapi itu tidak akan berhasil jika ada spasi putih atau ada karakter beraksen di salah satu nama folder.
Harap dicatat bahwa PDFsizeOpt bekerja dengan sempurna dalam anggur (diuji dengan Wine-1.2 di Ubuntu Lucid dan Wine-1.6.2 di Ubuntu Trusty), tetapi sedikit lebih lambat daripada menjalankannya secara asli (sebagai program Linux atau UNIX).
Instruksi ini bekerja pada sistem berikut: Linux AMD64, MacOS 64-bit Intel x86 (AMD64, x86_64), lengan MacOS 64-bit (silikon apel, misalnya chip M1 atau M2). Versi Linux atau MacOS tidak masalah (sistem lama seperti MacOS Leopard 10.5 juga berfungsi), selama ia telah dipasang dan bekerja Docker.
Program-program dalam gambar Docker PTSPTS/PDFSIZEOPT dikompilasi untuk Linux I386 (32-bit Intel x86), dan binari ini bekerja di semua platform yang disebutkan di atas, bahkan dengan Apple Silicon. (Diuji pada 2023-02-21.)
Tidak ada penginstal, Anda perlu menjalankan beberapa perintah di baris perintah untuk mengunduh dan menginstal. PDFSIZEOPT adalah aplikasi hanya baris perintah, tidak ada GUI.
Pertama, periksa apakah Anda telah memasang Docker dengan benar dengan menjalankan perintah ini dan memeriksa OK di akhir:
docker version && echo OK
Jika Anda tidak baik -baik saja, karena perintah `Docker 'tidak ditemukan, maka Docker tidak diinstal ke komputer Anda. Instruksi Instalasi (pada 2023-02-22):
Untuk menginstal Docker di Linux, Anda memiliki dua opsi: Mesin Docker (https://docs.docker.com/engine/install/, di dalam bagian server) atau Docker desktop (https://docs.docker.com/desktop/ Instal/Linux-Install/). Salah satu dari mereka akan bekerja.
Untuk menginstal Docker di MacOS, instal Docker Desktop (https://docs.docker.com/desktop/install/mac-install/).
Kemudian (pada macOS), tambahkan perintah docker
ke jalur Anda dengan menjalankan perintah berikut (copy-paste, jangan mengetik, untuk menghindari kesalahan ketik):
(echo; echo 'export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH"') >>~/.profile
Kemudian (pada macOS), tutup aplikasi terminal, dan buka lagi (sehingga perubahan menjadi ~/.profile mulai berlaku).
Setelah instalasi, coba lagi perintah docker version
di atas.
Hapus gambar Docker sebelumnya dari PDFSizeOpt:
docker image rm ptspts/pdfsizeopt
Lakukan pengoptimalan pengujian, yang menjalankan semua dependensi PDFSIZEOPT:
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
Jika Anda mendapatkan pesan peringatan (tidak berbahaya) seperti
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
, dan Anda tidak ingin mendapatkannya lagi, lalu tambahkan --platform linux/amd64
setelah -it
:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it --platform linux/amd64 ptspts/pdfsizeopt pdfsizeopt deptest.pdf
Untuk mengoptimalkan PDF, jalankan perintah ini:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt input.pdf output.pdf
Jika input PDF memiliki banyak gambar atau gambar besar, PDFSizeOpt bisa sangat lambat. Anda dapat mempercepatnya dengan menonaktifkan PNGout, metode optimasi gambar paling lambat, seperti ini:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt --use-pngout=no input.pdf output.pdf
PDFSizeOpt membuat banyak file sementara (psotmp.*) Di direktori output, tetapi juga membersihkan setelah itu.
Dimungkinkan untuk mengoptimalkan PDF di luar direktori saat ini. Untuk melakukan itu, tentukan pathname (termasuk nama direktori) di baris perintah.
Untuk menghindari mengetik perintah panjang, jalankan
(echo '#! /bin/sh'; echo 'exec docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt pdfsizeopt "$@"') >pdfsizeopt && chmod 755 pdfsizeopt
, dan kemudian salin skrip PDFsizeOpt ke jalur Anda, lalu buka jendela terminal baru, dan sekarang perintah ini juga akan berfungsi untuk mengoptimalkan pdf:
pdfsizeopt input.pdf output.pdf
Harap dicatat bahwa gambar Docker PTSPTS/PDFSIZEOPT sangat jarang diperbarui. Untuk menggunakan versi PDFsizeOpt yang lebih mutakhir, jalankan perintah ini untuk diunduh:
curl -L -o pdfsizeopt.single https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
chmod +x pdfsizeopt.single
Kemudian jalankan perintah ini untuk mengoptimalkan pdf:
docker run -v "$PWD:/workdir" -u "$(id -u):$(id -g)" --rm -it ptspts/pdfsizeopt ./pdfsizeopt.single --use-pngout=no input.pdf output.pdf
Jika Anda ingin memiliki pengoptimal gambar tambahan yang disertakan di Linux, gunakan PTSPTS/PDFSIZEOPT-dengan-Extraimgopt alih-alih PTSPTS/PDFSIZEOPT dalam perintah di atas. Contoh:
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
Instruksi ini bekerja pada Mac dengan macos catalina 10.15 (dan bahkan lebih tua, mungkin macos snow leopard 10.6)-macos ventura 13 (dan bahkan lebih baru), memiliki prosesor lengan 64-bit (silikon apel) atau intel x86 64-bit ( X86_64, AMD64) Prosesor. Program-program ini dikompilasi untuk prosesor Intel X86 64-bit, dan mereka bekerja pada prosesor lengan 64-bit juga, menggunakan emulasi Rosetta 2 dalam macOS. Instruksi ini diuji dan diketahui bekerja pada MacOS Ventura 13.3, keduanya dengan prosesor Intel x86 (x86_64, AMD64) 64-bit dan silikon apel (prosesor ARM).
Jika Anda memiliki Mac yang lebih lama yang menjalankan Mac OS X Leopard 10.5 - MacOS Mojave 10.14, ikuti instruksi pemasangan bagian dan penggunaan pada macOS yang lebih lama .
Instruksi ini belum diuji. Lihat #154 untuk pembaruan kemajuan.
Tidak ada penginstal, Anda perlu menjalankan beberapa perintah di baris perintah untuk mengunduh dan menginstal. PDFSIZEOPT adalah aplikasi hanya baris perintah, tidak ada GUI.
Untuk menginstal PDFSizeOpt pada sistem MacOS, buka jendela terminal dan jalankan perintah ini (tanpa $
terkemuka):
$ 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
Lakukan pengoptimalan pengujian, yang menjalankan semua dependensi PDFSIZEOPT:
$ curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
$ ~/pdfsizeopt/pdfsizeopt deptest.pdf
... dan buka (view) deptest.pdf dan deptest yang dioptimalkan.pso.pdf.
Untuk mengoptimalkan PDF, jalankan perintah berikut:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
Jika input PDF memiliki banyak gambar atau gambar besar, PDFSizeOpt bisa sangat lambat. Anda dapat mempercepatnya dengan menonaktifkan PNGout, metode optimasi gambar paling lambat, seperti ini:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
Juga, jika Anda memiliki MAC 32-bit, maka PNGout yang dibundel dengan PDFsizeOpt tidak akan berfungsi (karena membutuhkan Mac 64-bit), jadi Anda harus memaksa --Use-pngout = tidak. Lihat pengoptimal gambar bagian untuk alternatif PNGout.
PDFSizeOpt membuat banyak file sementara (psotmp.*) Di direktori output, tetapi juga membersihkan setelah itu.
Dimungkinkan untuk mengoptimalkan PDF di luar direktori saat ini. Untuk melakukan itu, tentukan pathname (termasuk nama direktori) di baris perintah.
Harap dicatat bahwa perintah di atas unduh sebagian besar dependensi (termasuk Ghostscript, tetapi tidak termasuk Python) juga. Semuanya harus bekerja seperti yang diperintahkan di atas, di luar kotak. Jika Anda mengalami masalah, silakan laporkan masalah di https://github.com/pts/pdfsizeopt/issues.
Untuk menghindari pengetikan ~/pdfsizeOpt/pdfsizeOpt, tambahkan "$ home/pdfsizeOpt" ke jalur Anda (mungkin di ~/.bashrc Anda), buka jendela terminal baru, dan perintah pdfsizeopt Anda akan bekerja dari direktori mana pun.
Anda juga dapat menempatkan PDFSizeOpt ke direktori selain ~/pdfsizeOpt, sesuka Anda.
Instruksi ini harus bekerja pada Mac lama yang menjalankan Mac OS X Leopard 10.5-MacOS Mojave 10.14, dan memiliki prosesor Intel X86 32-bit atau 64-bit. Program-program ini dikompilasi untuk prosesor Intel x86 (I386) 32-bit (dan juga bekerja pada prosesor Intel 64-bit dengan MacOS Mojave 10.14 atau lebih awal), kecuali untuk alat PNGout, yang membutuhkan setidaknya Mac OS X Snow Leopard 10.6 dan dan prosesor intel 64-bit.
Tidak ada penginstal, Anda perlu menjalankan beberapa perintah di baris perintah untuk mengunduh dan menginstal. PDFSIZEOPT adalah aplikasi hanya baris perintah, tidak ada GUI.
Untuk menginstal PDFSizeOpt pada sistem MacOS yang lebih lama, buka jendela terminal dan jalankan perintah ini (tanpa $
):
$ 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
Lakukan pengoptimalan pengujian, yang menjalankan semua dependensi PDFSIZEOPT:
$ curl -L -o deptest.pdf https://github.com/pts/pdfsizeopt/raw/master/deptest/deptest.pdf
$ ~/pdfsizeopt/pdfsizeopt deptest.pdf
... dan buka (view) deptest.pdf dan deptest yang dioptimalkan.pso.pdf.
Untuk mengoptimalkan PDF, jalankan perintah berikut:
~/pdfsizeopt/pdfsizeopt input.pdf output.pdf
Jika input PDF memiliki banyak gambar atau gambar besar, PDFSizeOpt bisa sangat lambat. Anda dapat mempercepatnya dengan menonaktifkan PNGout, metode optimasi gambar paling lambat, seperti ini:
~/pdfsizeopt/pdfsizeopt --use-pngout=no input.pdf output.pdf
Juga, jika Anda memiliki MAC dengan prosesor Intel X86 32-bit, maka PNGout yang dibundel dengan PDFSIZEOPT tidak akan berfungsi (karena membutuhkan prosesor 64-bit), jadi Anda harus memaksa --SUSE-PNGOUT = tidak. Lihat pengoptimal gambar bagian untuk alternatif PNGout.
PDFSizeOpt membuat banyak file sementara (psotmp.*) Di direktori output, tetapi juga membersihkan setelah itu.
Dimungkinkan untuk mengoptimalkan PDF di luar direktori saat ini. Untuk melakukan itu, tentukan pathname (termasuk nama direktori) di baris perintah.
Harap dicatat bahwa perintah di atas unduh sebagian besar dependensi (termasuk Ghostscript, tetapi tidak termasuk Python) juga. Semuanya harus bekerja seperti yang diperintahkan di atas, di luar kotak. Jika Anda mengalami masalah, silakan laporkan masalah di https://github.com/pts/pdfsizeopt/issues.
Untuk menghindari pengetikan ~/pdfsizeOpt/pdfsizeOpt, tambahkan "$ home/pdfsizeOpt" ke jalur Anda (mungkin di ~/.bashrc Anda), buka jendela terminal baru, dan perintah pdfsizeopt Anda akan bekerja dari direktori mana pun.
Anda juga dapat menempatkan PDFSizeOpt ke direktori selain ~/pdfsizeOpt, sesuka Anda.
Tidak ada penginstal, Anda perlu menjalankan beberapa perintah di baris perintah untuk mengunduh dan menginstal. PDFSIZEOPT adalah aplikasi hanya baris perintah, tidak ada GUI.
PDFSIZEOPT BEKERJA dengan sempurna pada sistem X86 FreeBSD dengan lapisan emulasi Linux diaktifkan. Jadi, aktifkan lapisan emulasi Linux pada sistem FreeBSD Anda, dan kemudian ikuti instruksi instalasi dan penggunaan di Linux .
Secara alternatif, Anda dapat mengikuti instruksi pemasangan dan penggunaan pada UNIX generik , tetapi itu perlu lebih banyak pekerjaan di pihak Anda (dan itu tidak nyaman dan rawan kesalahan), karena Anda perlu menginstal banyak dependensi secara terpisah, mungkin menyusun beberapa dari mereka dari sumber.
Melakukan hal ini semakin sulit pada tahun 2023, karena PDFsizeOpt membutuhkan Python 2.4--2.7 dan Ghostscript 9.05, keduanya sangat tua, dan dengan demikian sulit dipasang ke sistem modern.
Tidak ada penginstal, Anda perlu menjalankan beberapa perintah di baris perintah (jendela prompt perintah hitam) untuk diunduh dan diinstal. PDFSIZEOPT adalah aplikasi hanya baris perintah, tidak ada GUI.
PDFizeOpt adalah skrip Python. Ini bekerja dengan Python 2.4, 2.5, 2.6 dan 2.7 (tetapi tidak bekerja dengan Python 3.x). Jadi silakan instal Python terlebih dahulu.
Buat direktori baru bernama pdfsizeopt, dan unduh tautan ini di sana: https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
Ubah nama menjadi pdfsizeOpt dan membuatnya dapat dieksekusi dengan menjalankan perintah berikut (tanpa $
terkemuka):
$ cd pdfsizeopt
$ mv pdfsizeopt.single pdfsizeopt
$ chmod +x pdfsizeopt
Jika Python Executable Anda tidak/usr/bin/python, maka edit baris pertama (dimulai dengan #!
) Dalam skrip PDFsizeOpt sesuai.
Cobalah dengan:
$ ./pdfsizeopt --version
info: This is pdfsizeopt ZIP rUNKNOWN size=105366.
PDFSIZEOPT memiliki banyak ketergantungan. Untuk fungsionalitas penuh, Anda membutuhkan semuanya. Instal sebanyak yang Anda bisa, dan letakkan di jalan setapak.
Ketergantungan:
imgdataopt
sebagai sam2p
(eg/usr/local/bin/sam2p) ke Anda sebagai SAM2P (EG/USR/LOCAL/BIN/BIN/BIN/SAMP) ke Anda (EG/USR/LOCAL/BIN/BIN/BIN/SAM2P) ke Anda (EG/USR/BIN/BIN/BIN/BIN/BIN) ke Your/ JALUR. Jika Anda tidak dapat menginstalnya, gunakan PDFSizeOpt--do-Optimize-Images = no. Beberapa distribusi Linux memiliki binari SAM2P, tetapi mereka cenderung terlalu tua. Atau, sam2p> = 0.49.3 + png22pnm juga berfungsi alih -alih imgdataopt, tetapi imgdataopt lebih mudah dipasang.Setelah instalasi, gunakan PDFSizeOpt sebagai:
$ ./pdfsizeopt input.pdf output.pdf
Anda dapat menambahkan direktori yang berisi pdfsizeOpt ke jalur, sehingga perintah pdfsizeopt
akan berfungsi dari direktori mana pun.
PDFSizeOpt dapat menggunakan alat eksternal berikut untuk membuat gambar dalam file PDF tertanam lebih kecil:
Untuk mengaktifkan atau menonaktifkan pengoptimal gambar apa pun, tentukan semua pengoptimal gambar yang ingin Anda aktifkan seperti ini: --use-image-optimizer = Optipng, jbig2. Ini juga akan menonaktifkan pngout default.
Anda juga dapat menentukan pola perintah pengoptimal gambar kustom dengan menentukan bendera terpisah, tambahan-gambaran-optimier =, seperti ini:
--use-image-optimizer="optipng %(sourcefnq)s -o6 -fix -force %(optipng_gray_flags)s-out %(targetfnq)s"
Anda selalu harus menentukan %(TargetFNQ) dalam pola perintah.
Tentukan--do-debug-image-optimizers = ya untuk melihat pengoptimal gambar mana yang diaktifkan (dan baris perintah penuh) untuk menjalankan saat ini.
Saat startup, PDFSizeOpt memeriksa bahwa pengoptimal gambar yang diminta tersedia (sebagai file program), dan gagal jika beberapa di antaranya hilang. Untuk mengabaikan yang hilang, tentukan--do-require-image-optimizers = no.
Ini adalah tanggung jawab Anda (pengguna) untuk menginstal pengoptimal gambar dan menambahkannya ke jalur. Jika Anda mengikuti instruksi instalasi untuk Windows dan Linux di atas, pengoptimal gambar default (SAM2P, JBIG2 dan PNGOUT) akan diinstal untuk Anda. Untuk Linux, ada juga instruksi instalasi di atas untuk pengoptimal gambar tambahan (ZopFlipng, Optipng, Advpng dan ECT).
Tentukan --do-unify-fonts = no dan--do-regenerate-all-fonts = no.
Jika masih gagal, tentukan--do-optimize-fonts = no.
Dalam kedua kasus tersebut, silakan laporkan di https://github.com/pts/pdfsizeopt/issues
Tentukan--do-optimize-images = no.
Silakan laporkan di https://github.com/pts/pdfsizeopt/issues
Tentukan --use-pngout = no. Ini menonaktifkan PNGout, yang merupakan langkah optimisasi paling lambat untuk gambar.
Harap laporkan di https://github.com/pts/pdfsizeopt/issues, melampirkan file input PDF dan output konsol PDFSizeOpt. Laporan Anda sangat dihargai.
Jika PDFsizeOpt keluar dengan pengecualian yang tidak tertutup, itu dapat meninggalkan beberapa file sementara (PSOTMP.*) Di belakang dalam direktori saat ini. Anda dapat menghapus file -file ini.
Harap dicatat bahwa PDFSizeOpt tidak tangguh dalam memproses file PDF yang korup (yaitu yang tidak sesuai dengan standar PDF). Jadi jika PDFSizeOpt gagal, maka alasannya mungkin bug di PDFSizeOpt atau file input PDF yang korup. Namun demikian, harap laporkan masalah (lihat di atas).
Harap laporkan di https://github.com/pts/pdfsizeopt/issues, melampirkan file input PDF dan file PDF output (.pso.pdf) dan output konsol dari PDFSIZEOPT. Laporan Anda sangat dihargai.
Ini dapat terjadi jika nama file atau nama path penuh berisi karakter apa pun selain huruf ASCII (AZ dan AZ), digit (0-9), garis bawah (_), Dash ASCII (-), plus (+), dot (. ), backslash () atau slash (/). Biasanya karakter ini tidak berfungsi:
Spaces and Tabs: Ini mudah diperbaiki, cukup bungkus nama file dalam kutipan ganda ("), cara yang biasa.
Kutipan Ganda ("): Ini tidak dapat terjadi, nama file pada windows tidak diperbolehkan berisi kutipan ganda. Jika Anda perlu meneruskan argumen non-filene dengan kutipan ganda di dalamnya ke pdfsizeOpt, lakukan ini. Bungkus argumen dalam ganda kutipan ("), ganti semua kutipan ganda (") dengan ", dan (secara paralel dengan penggantian sebelumnya) ganti urutan backslash () dan kutipan ganda (") segera mengikutinya dengan menduplikasi backslash dan mengganti kutipan ganda ( ") Dengan". Ini kedengarannya rumit, tapi ini adalah cara yang biasa untuk program lain juga, lihat https://stackoverflow.com/a/4094897/97248.
Newlines dan whitespace non-ruang lainnya: Ini tidak akan berhasil, Windows Command Prompt (CMD.EXE) tidak mengizinkan karakter ini dalam argumen baris perintah. Juga Windows tidak mengizinkannya dalam nama file.
Karakter beraksen (seperti á dan ő). Karakter -karakter ini tidak akan berfungsi (atau mungkin berfungsi hanya untuk beberapa karakter, tergantung pada halaman kode aktif) di nama file PDF yang ditentukan dalam Commandline, atau di Pathname lengkap PDFSIZEOPT (jadi jangan menginstal PDFSIZEOPT ke C: Bőr, itu tidak akan berhasil).
Karakter beraksen (di luar halaman kode aktif) tidak akan berfungsi dalam nama lengkap PDFsizeOpt (seperti C: BőR PDFsizeOpt.exe). Itu karena Python tidak dapat memanggil program eksternal (OS.System, OS.Popen, OS.Spawnl dan Subprocess.call) dengan karakter beraksen dalam nama mereka, karena menggunakan API byte tunggal.
Apa pun yang bukan ASCII dicetak (kode antara 33 dan 126, inklusif): jika tidak dicakup di atas, ini mungkin tidak berfungsi. Lihat deskripsi karakter beraksen.
Jika beberapa nama file masih belum berfungsi, solusi adalah:
Karakter beraksen dalam nama file PDF dapat dibuat dengan cara berikut (sebagai perbaikan di masa depan untuk PDFSIZEOPT):
pdfsizeopt.exe harus menghubungi API 16-bit (GetCommandlinew) alih-alih API satu-byte (GetCommandlinea) untuk mendapatkan argumen
pdfsizeopt.exe harus luput dari karakter non-ASCII dalam argumen (misalnya sebagai u+12ab)
pdfsizeopt.exe harus menjalankan pdfsizeopt.single seperti ini:
.../pdfsizeopt_win32exec/pdfsizeopt_python.exe .../pdfsizeopt.single --args-u+ ...
PDFSizeOpt Python Code harus mengenali --Args-U+, dan ketika menemukan nama file, itu harus mengubahnya menjadi Unicode (dengan menjaga ASCII kecuali untuk U+12AB), dan harus memberikan nilai yang diketik unicode untuk dibuka (...) . Buka (...) seperti itu berfungsi di Python 2.6 di Windows.
Saat menampilkan nama file, kode PDFSizeOpt Python masih harus menampilkan ASCII dengan U+12AB Escaping. Dengan demikian modul Win32Console tidak diperlukan. Dengan demikian nama file akan ditampilkan dengan leglasi tetapi salah (tidak copy-casta) di jendela Command Prompt.
Tidak ada pelarian yang diperlukan dalam baris perintah program penolong (misalnya GS, SAM2P), karena semuanya adalah ASCII, karena nama file adalah nama Fils Sementara Autogenerasi, yang semuanya merupakan ASCII, dan jalur ke PDFsizeOpt itu sendiri diperlukan untuk ASCII.
Karakter beraksen dalam pathname PDFSIZEOPT.Single dapat dibuat dengan cara ini (sebagai perbaikan masa depan bekerja untuk PDFSIZEOPT):
Lakukan karakter beraksen di nama file di atas terlebih dahulu.
pdfsizeopt.exe harus menggunakan wgetCWD untuk mendapatkan direktori saat ini.
pdfsizeopt.exe harus menggunakan wchdir untuk berubah ke direktori pdfsizeopt.single.
PDFSIZEOPT.EXE harus menyiapkan direktori pdfsizeopt_win32exec dan pdfsizeopt_win32exec/pdfsizeopt_gswin ke jalur, menggunakan wputenv.
pdfsizeopt.exe harus menjalankan pdfsizeopt.single seperti ini:
pdfsizeopt_python.exe pdfsizeopt.single --args-u+ --cwd=... ...
, di mana nilai -CWD = adalah versi yang dilarikan (U+12AB) dari hasil WgetCWD.
Kode PDFSizeOpt Python harus memberi nilai nilai -CWD = ... ke nama file input jika relatif.
PDFSIZEOPT Kode Python tidak boleh memodifikasi jalur jika -CWD = ... ada. (Apakah propagasi variabel lingkungan ini berfungsi di Python 2.6 .? Mari kita coba!)
Masih benar bahwa tidak ada pelarian yang diperlukan dalam baris perintah program eksternal (misalnya GS, SAM2P), karena itu semua ASCII, karena nama file sementara semuanya adalah ASCII, dan jalur ke PDFsizeOpt itu sendiri diperlukan untuk ASCII. Dibutuhkan Escaping jika Pathname dari Direktori Sementara (Variabel TEMP) perlu melarikan diri.
Kesalahan ini telah terjadi pada sistem Windows XP. Solusinya: Unduh msvcr90.dll (atau temukan di suatu tempat yang sudah ada di sistem Anda), dan salin ke PDFsizeOpt_Win32exec (di sebelah python26.dll). Versi msvcr90.dll apa pun akan berfungsi:
Kesalahan ini telah terjadi pada sistem Windows XP ketika file microsoft.vc90.crt.manifest hilang dari direktori pdfsizeopt_win32exec. Solusinya: instal ulang pdfsieOpt, direktori pdfsizeopt_win32exec di versi terbaru memiliki file itu.
Harap instal pdfsizeOpt dengan mengikuti instruksi instalasi di https://github.com/pts/pdfsizeopt. Dengan melakukannya, PDFSizeOpt akan menggunakan Ghostscript 9.05 yang dibundel dengan itu, dan itu akan berhasil.