Baris perintah: Bagaimana Anda memutar file PDF 90 derajat?

54

Ketika saya memindai dokumen yang berorientasi lanskap, file PDF keluarannya potret dan semua pemirsa PDF menampilkan dokumen yang dipindai dalam potret.

Dari baris perintah, bagaimana Anda memutar file PDF 90 derajat?

Saya mencoba mencari dan menemukan banyak solusi, tetapi saya kesulitan menemukan apa yang tampak seperti solusi otoritatif [1] yang menggunakan alat linux / unix yang stabil / tangguh.


catatan kaki [1]

Sebagai contoh, berikut adalah contoh dari beberapa solusi serampangan yang saya temukan:

  • "cukup gunakan Adobe Acrobat Pro untuk memutar file dan kemudian menyimpan file"
  • "gunakan pdfjam"
  • "gunakan pdftk"
  • "gunakan $ {PROGRAM_NAME} dari Poppler"
  • "Gunakan Imagemagick's convert" - tetapi kemudian semua komentar itu sangat negatif dan menyatakan "kualitas gambar hancur"
  • "buka file dalam penampil PDF, lalu putar, lalu cetak menggunakan printer PDF seperti CUTEPDF atau PDFPRINTER atau dll."
  • "gunakan $ {PROGRAM_NAME}" lalu saya mencari "$ {PROGRAM_NAME}" dan ada sesuatu tentang "Fedora menghapus $ {PROGRAM_NAME} karena masalah lisensi"
Trevor Boyd Smith
sumber
5
Tidak ada "solusi otoritatif", tetapi Anda harus ingat metode apa yang digunakan berbagai solusi: Manipulasi langsung struktur PDF (pdftk, Adobe Acrobat, dan program lain), mengonversi ke gambar lalu mengonversi kembali ke PDF (mis. Konversi Imagemagick, mencetak menggunakan printer PDF dll.) Yang terakhir jelas merupakan ide yang buruk.
dirkt
Bagaimana solusi serampangan itu ? Bagaimana Anda dikecewakan oleh mereka masing-masing? Apakah Anda benar-benar mencobanya?
simlev

Jawaban:

48

Cukup gunakan pdftk.

  1. Untuk memutar searah jarum jam:

    pdftk input.pdf cat 1-endeast output output.pdf
    
  2. Untuk memutar berlawanan arah jarum jam:

    pdftk input.pdf cat 1-endwest output output.pdf
    

Mengenai pemasangan pdftk di Fedora, saya menemukan tautan ini .

pengguna163859
sumber
4
Halaman manual pdftk menyatakan lebih banyak opsi untuk memutar:The page rotation setting can cause pdftk to rotate pages and documents. Each option sets the page rotation as follows (in degrees): north: 0, east: 90, south: 180, west: 270, left: -90, right: +90, down: +180. left, right, and down make relative adjustments to a page's rotation.
Tapper
Output diputar tetapi masih diskalakan cukup kecil agar sesuai dengan orientasi asli. Tidak membantu.
JohnMudd
@JohnMudd Apa yang Anda maksud dengan "diskalakan cukup kecil agar sesuai dengan orientasi asli"? Saya kira Anda sekarang memiliki masalah dengan penampil PDF, bukan dengan rotasi halaman.
user163859
PDF asli saya adalah halaman ukuran huruf yang diputar 90 derajat sehingga tinggi halaman dikurangi dari 11 "menjadi 8.5". Tidak berubah setelah mengoreksi rotasi. Menemukan ini benar dengan banyak alat daring. Bagaimanapun juga, mungkin tidak akan ada masalah dengan konversi. Saya menemukan opsi penskalaan saat melihat / mencetak rotated PDF dan memperbaikinya. Maaf, saya sangat frustrasi pada saat itu sehingga saya baru saja mencetak dan pindah dan tidak mencatat langkah-langkah persis yang saya ambil.
JohnMudd
1
pdftkdihapus di Ubuntu 18.04 dan lebih tinggi. Ubuntu sendiri menyarankan untuk menginstal snap, yang hanya berfungsi dalam situasi sederhana (tidak menemukan file saya, mungkin karena mereka berada di luar direktori home saya?). Saya pindah ke pdfjam ... --angle 270....
Stéphane Gourichon
43

Saya baru saja menemukan utas ini dan melihat bahwa belum ada solusi yang baik. Saya menemukan bahwa (setidaknya pada Debian dan Ubuntu) pdfjam dilengkapi dengan perintah berikut:

pdf90 input.pdf
pdf180 input.pdf
pdf270 input.pdf

Saya pikir itu adalah pendekatan termudah dan tercepat. Ini adalah skrip yang menggunakan perintah pdfjam dengan benar. Btw. pdfjam adalah paket virtual yang disertakantexlive-extra-utils

derschueddi
sumber
4
Sepertinya 90 berjalan berlawanan arah jarum jam dan 270 berjalan searah jarum jam - mungkin Anda harus menyebutkan itu.
Aaron Hall
2
pdf90 memang pembungkus tipis. Namun itu memaksa konvensi sufiks. Jadi saya menggunakan pdfjam langsung:pdfjam --outfile myoutputfile.pdf --angle 270 --fitpaper true --rotateoversize true myinputfile.pdf
Stéphane Gourichon
16

Anda dapat menggunakan ImageMagick: displayatau convert- misalnya untuk memutarnya, gunakan searah jarum jam

convert -rotate 90 <file>.pdf <rotated-file>.pdf

Gunakan -90 untuk rotasi berlawanan arah jarum jam.

NB Hanya menggunakan metode ini ketika gambar asli adalah bitmap (mis. Diproduksi oleh pemindaian). Jika gambar asli bukan bitmap, metode ini akan mengubahnya menjadi bitmap dan kualitasnya akan berkurang. Dalam kasus terakhir, silakan gunakan salah satu metode di jawaban lain.

NickD
sumber
11
Ini pertama-tama akan mengonversi teks PDF ke gambar, jadi ukurannya akan meningkat dan kualitasnya akan turun (Kecuali itu hanya pemindaian).
aviv
1
Ya memang, itu pengingat yang berguna, tetapi dalam hal ini OP menyatakan bahwa ia sedang memindai dokumen.
NickD
12
Hasil pdf berkualitas sangat rendah.
Ivan Romanov
Metode ini hanya baik untuk dokumen asli yang dipindai: mereka sudah bitmap. Untuk PDF biasa, lihat komentar @ aviv di atas dan mungkin gunakan metode pada jawaban lainnya.
NickD
13

Di Linux Mint 18.3 (saya percaya pada distribusi turunan Debian lainnya juga) Anda memiliki alat baris perintah sederhana bernama QPDF.

Anda dapat menggunakan: qpdf in.pdf out.pdf --rotate==[+|-]angle[:page-range].

Dari dokumentasi :

--rotate = [+ | -] sudut [: rentang-halaman]

Terapkan rotasi ke halaman yang ditentukan. Bagian rentang halaman dari nilai opsi memiliki format yang sama dengan rentang halaman di Bagian 3.5, “Pilihan Pilihan Halaman”. Jika rentang halaman dihilangkan, rotasi diterapkan ke semua halaman. Bagian sudut parameter dapat berupa 90, 180, atau 270. Jika didahului oleh + atau -, sudut ditambahkan atau dikurangkan dari rotasi asli halaman yang ditentukan. Kalau tidak, rotasi halaman diatur ke nilai yang tepat. Sebagai contoh, perintah qpdf in.pdf out.pdf --rotate=+90:2,4,6 --rotate=180:7-8akan memutar halaman 2, 4, dan 6 90 derajat searah jarum jam dari rotasi aslinya dan memaksa rotasi halaman 7 hingga 9 hingga 180 derajat terlepas dari rotasi aslinya, dan perintah qpdf in.pdf out.pdf --rotate=180akan memutar semua halaman dengan 180 derajat.

Royi
sumber
3
Menentukan rentang halaman tampaknya wajib, setidaknya dalam versi qpdf saya saat ini (8.0.2).
Xtreme Biker
Tampaknya setidaknya tidak menjadi masalah lagi (9.0.2): qpdf in.pdf out.pdf --rotate==-90berfungsi dengan baik untuk semua halaman.
iNyar
12

pdftk tidak lagi tersedia di Ubuntu 18.04 karena beberapa dependensi usang.

Solusi terbaik yang saya temukan adalah alat (grafis) pdfshuffler .

Instal dan jalankan. Buka file pdf yang diinginkan, klik kanan pada halaman, dan putar masing-masing secara individual. Ini juga menyusun pdf dan beberapa hal bagus lainnya.

sudo apt install pdfshuffler
tronic
sumber
1
Apakah Anda harus memutar setiap halaman secara manual? Itu adalah pemecah kesepakatan. Saya perlu memutar buku PDF sepanjang ratusan halaman untuk melihatnya lebih baik (lebih besar) di Kindle. UPDATE : Baru saja mencobanya, tidak, Anda dapat Ctrl-A untuk memilih semua halaman kemudian putar semuanya dalam satu langkah.
Gerry Lufwansa
6

Untuk meningkatkan resolusi keluaran (standarnya adalah 72 DPI), saya mendapat hasil yang baik dengan:

convert -rotate -90 -density 200 input.pdf output.pdf

Ini untuk .pdf dari dokumen yang dipindai. Saya menemukan bahwa -density 300kualitas berkurang agak dibandingkan -density 200.

Greg Ben
sumber
Menambahkan -density 300, 600 dan bahkan 1200 hanya mengalami sedikit peningkatan pada kualitas output.
JohnMudd
1

Meskipun memiliki keterbatasan, saya cukup sering menggunakan PDFedit, terutama untuk rotasi pemindaian PDF. Sementara konversi ImageMagick (menggunakan nilai kepadatan agak tinggi) mencapai kualitas yang cukup baik, ia juga menggembungkan file (asli: 155 kiB, salinan yang diputar 180 °: 1,2 MiB). PDFedit memutar gambar yang sama dengan kualitas tidak berubah tanpa perlu mengubah ukuran file.

ToraKamo
sumber
terdengar sangat menjanjikan! Saya juga memperhatikan masalah dengan mengubah ukuran file secara drastis yang Anda rujuk.
Trevor Boyd Smith
0

Saya menggunakan perintah ini untuk secara otomatis memutar file pdf menjadi tegak lurus jika tidak benar-benar tegak:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/All -sOutputFile="$outputFile" "$file"
SebMa
sumber
Ini tidak memiliki efek.
Colin 't Hart
@ Perintah Colin'tHart Saya hanya mengembalikan dokumen menjadi tegak ke bawah jika tidak tegak di tempat pertama, untuk memaksa penggunaan rotasi pdf90atau pdf180atau pdf270sebaliknya, melihat jawaban ini
SebMa