Saya mencari alat baris perintah open source untuk memotong file PDF seperti yang dapat kita lakukan di Adobe Acrobat Pro. Saya sudah mencoba PdfTk, ImageMagick, PyPDF, dan GhostScript — semuanya tidak berhasil sejauh ini.
Saya mencari alat baris perintah open source untuk memotong file PDF seperti yang dapat kita lakukan di Adobe Acrobat Pro. Saya sudah mencoba PdfTk, ImageMagick, PyPDF, dan GhostScript — semuanya tidak berhasil sejauh ini.
Jawaban:
Saya sarankan Anda melihat PDFcrop .
Jika Anda ingin memotong pdf dengan margin kiri, atas, kanan dan bawah 5, 10, 20, dan 30 pt (poin), maka jalankan
pdfcrop --margins '5 10 20 30' input.pdf output.pdf
di terminal. Untuk benar-benar memotong sesuatu, gunakan nilai negatif dalam argumen untuk memotong. Sebagai contoh,
pdfcrop --margins '-50 -50 -50 -50' input.pdf output.pdf
memotong 50 poin dari kiri, atas, kanan, bawah (dalam urutan ini).
Jika Anda hanya menjalankan perintah pdfcrop input
, itu akan menampilkan file berjudul input-crop.pdf dengan nol margin. Saya menemukan ini sangat berguna ketika menyertakan ilustrasi pdf dalam dokumen.
Memotong banyak file
Sayangnya, pdfcrop tidak dapat memangkas banyak file saat itu. Namun mudah untuk menulis skrip yang akan memotong semua pdf di folder tempat skrip berada.
Buat file kosong baru, dan panggil itu something.sh
. Buka dengan editor teks dan masukkan yang berikut ini:
#!/bin/bash
for FILE in ./*.pdf; do
pdfcrop "${FILE}"
done
Simpan, dan tutup. Kemudian klik kanan file, pergi ke Properties> Izin dan centang bidang Izinkan mengeksekusi file sebagai program . Sekarang tutup dialog. Jalankan skrip dengan mengklik dua kali dan memilih Jalankan di Terminal . Dan versi terpangkas nol-baru dari semua pdf dengan akhiran -crop sekarang akan dicetak dalam folder. Jika Anda menginginkan margin atau hal-hal lain, tentu saja Anda bisa hanya membuka skrip dan menambahkan argumen setelahnya pdfcrop
.
--bbox "<left> <bottom> <right> <top>"
. Ini memungkinkan untuk menggunakan pendekatan untuk menentukan area tanaman yang dijelaskan dalam jawaban saya di bawah ini .
pdfcrop --help
daftar opsi yang tersedia. Saya tidak dapat melihat apa pun di sana yang memungkinkan menentukan rentang halaman.
Terima kasih untuk Rasmus, Anda dapat menginstal pdfcrop dari paket texlive-extra-utils:
sudo apt-get install texlive-extra-utils
Kemudian pangkas file pdf menggunakan perintah pdf crop sebagai:
pdfcrop input.pdf output.pdf
gunakan --help
untuk melihat parameter yang lebih luar biasa suka--margins
pdfcrop --margins 5 input.pdf output.pdf
yang memotong pdf dengan 5 bp dari setiap sisi halaman
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS="/ebook" -sOutputFile=output2.pdf output.pdf
setelah itu, yang memperbaiki ukuran file.
Anda juga dapat memotong file PDF hanya dengan menggunakan Ghostscript. Saya telah menulis skrip kecil untuk menyederhanakan proses (terinspirasi oleh jawaban ini ):
#!/bin/bash
if [ $# -lt 5 ]
then
echo "Usage: `basename $0` <pdf-file> <x_min> <x_max> <y_min> <y_max>"
echo "Notes:"
echo " - all coordinates are absolute; no calculation of width/height necessary"
echo " - use 'gv' to determine the coordinates"
exit 65
fi
file="$1"
xmin="$2"
xmax="$3"
ymin="$4"
ymax="$5"
base="${file%.*}"
outfile="${base}_cropped.pdf"
echo "writing to: $outfile"
gs \
-o $outfile \
-sDEVICE=pdfwrite \
-c "[/CropBox [$xmin $ymin $xmax $ymax] /PAGES pdfmark" \
-f $file
Untuk menentukan koordinat pemangkasan, saya menggunakan gv
, yang mencetak koordinat kursor mouse menggunakan unit yang sama dengan Ghostscript. Sebagai contoh, di sini saya menentukan koordinat minimum untuk x / y (nilai-nilai di sudut kiri atas):
Sekarang koordinat maksimum:
Dan akhirnya, saya menjalankan skrip yang pdf_crop_by_coordinates.sh test.pdf 45 429 38 419
menghasilkan test_cropped.pdf
yang terlihat seperti itu:
Saya tidak tahu, bagaimana solusi Ghostscript dibandingkan pdfcrop
dalam hal kualitas dan kebenaran.
Ketika saya tidak dapat melakukan sesuatu dengan pdftk, tempat berikutnya yang saya putar adalah PDFjam , yang merupakan pembungkus baris perintah untuk paket pdfpages LaTeX (maka Anda juga memerlukan itu dan distro TeX diinstal). Untuk bantuan tentang cara menggunakannya, saya sarankan layar bantuan reguler:
pdfjam --help
karena halaman manual jarang dan halaman Web berkonsentrasi pada contoh.
Untuk memotong PDF, perintah yang Anda butuhkan adalah sesuatu seperti ini:
pdfjam --keepinfo --trim "10mm 15mm 10mm 15mm" --clip true --suffix "cropped" input.pdf
Ini akan menampilkan file bernama input-cropped.pdf
. Urutan trim harus kiri, bawah, kanan, atas, sesuai \includegraphics
dari graphicx .
Untuk memberikan gambaran bagaimana perbandingannya dengan PDFcrop, saya punya alasan untuk memotong PDF yang cukup mewah baru-baru ini. Dokumen asli saya adalah 675 kB, versi yang saya pangkas melalui PDF adalah 1.2 MB, sedangkan versi yang dipangkas melalui PDFcrop adalah 4.5 MB. Sementara PDFjam dan PDFcrop menghapus hyperlink dan bookmark yang disematkan, PDFjam dengan --keepinfo
opsi mempertahankan properti dokumen (misalnya judul, penulis, subjek).
Jika alat grafis juga baik saya akan merekomendasikan krop
: http://arminstraub.com/software/krop
Ini dapat membantu Anda.
Ini sesuai dengan versi Ubuntu yang lebih baru dan masa pakai. Ini adalah Master PDF Editor . Anda dapat menggunakannya memotong, menambahkan beberapa hal, dll.
Anda dapat menggunakan skrip pypdf dari halaman ini . Namun dalam jawaban untuk pertanyaan stackexchange ini , tampaknya ada banyak pilihan juga.
Program pdfCropMargins adalah aplikasi baris perintah untuk secara otomatis memotong margin file PDF.
Program ini tergantung pada program Ghostscript atau program pdftoppm yang diinstal (dan dapat dilacak) pada sistem. Dan menganalisis gambar halaman dengan PIL untuk menemukan kotak pembatas, menggunakan ambang batas 191.
instal menggunakan
pip instal pdfCropMargins
Jalankan menggunakan
pdf-crop-margin -v -s -u file-Anda.pdf
Untuk bantuan
pdf-crop-margin -h | lebih