Komut satırı: Bir PDF dosyasını 90 derece nasıl döndürürsünüz?


52

Yatay yöndeki belgeleri tararken, çıktı PDF dosyaları dikeydir ve bu nedenle tüm PDF görüntüleyiciler taranan belgeleri dikey olarak görüntüler.

Komut satırından bir PDF dosyasını 90 derece nasıl döndürürsünüz?

Aramaya çalıştım ve bir sürü çözüm buldum, ancak kararlı / sağlam bir linux / unix aracı kullanan yetkili bir çözüme [1] benzeyen bir şey bulmakta zorlandım.


dipnot [1]

Örneğin, işte bulduğum rastgele çözümlerden bazılarının bir örneği:

  • "dosyayı döndürmek için sadece Adobe Acrobat Pro kullanın ve ardından dosyayı kaydedin"
  • "pdfjam kullan"
  • "pdftk kullan"
  • "Poppler'den $ {PROGRAM_NAME} kullan"
  • "Imagemagick'in dönüştürmesini kullan" - ancak daha sonra tüm yorumlar çok olumsuzdu ve "görüntü kalitesi mahvoldu" diyerek
  • "dosyayı bir PDF görüntüleyicide açın, sonra döndürün, sonra CUTEPDF veya PDFPRINTER veya benzeri bir PDF yazıcısı kullanarak yazdırın"
  • "$ {PROGRAM_NAME} kullan" sonra "$ {PROGRAM_NAME}" aradım ve "Fedora, lisans sorunları nedeniyle $ {PROGRAM_NAME} $ kaldırıldı" hakkında bir şey var.

5
"Yetkili çözümler" yoktur, ancak çeşitli çözümlerin hangi yöntemi kullandığını aklınızda tutmalısınız : PDF yapısının doğrudan manipülasyonu (pdftk, Adobe Acrobat ve diğer programlar), bir görüntüye dönüştürme ve daha sonra bir PDF'ye dönüştürme (örneğin Imagemagick dönüştürmek, PDF yazıcı kullanarak yazdırmak vb.). İkincisi açıkça kötü bir fikirdir.
dirkt

Bu gelişigüzel çözüm nasıl ? Her biri tarafından nasıl hayal kırıklığına uğradınız? Eğer muydunuz aslında bunları deneyin?
simlev

Yanıtlar:


48

Sadece pdftk kullanın.

  1. Saat yönünde döndürmek için:

    pdftk input.pdf cat 1-endeast output output.pdf
    
  2. Saat yönünün tersine döndürmek için:

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

Fedoraya pdftk kurulumu ile ilgili olarak, bu bağlantıyı buldum .


4
Pdftk'in man sayfası, döndürmek için daha fazla seçenek belirtiyor: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

Çıktı döndürülür, ancak yine de orijinal yönlendirmeye uyacak kadar küçük ölçekli. Yararlı değil.
JohnMudd

@JohnMudd Ne demek "orijinal yönüne sığacak kadar küçük ölçekli"? Sanırım artık sayfaların dönüşüyle ​​değil, PDF görüntüleyiciyle ilgili bir sorununuz var.
user163859 12:18

Orijinal PDF'im, bir harf boyutunda sayfa 90 derece döndürüldü, böylece sayfa yüksekliği 11 "den 8.5" e düşürüldü. Rotasyonu düzelttikten sonra değişmedi. Bunu birçok çevrimiçi araçla doğru buldum. Sonuçta dönüşümle ilgili bir sorun olmayabilir. Döndürülmüş PDF'yi görüntülerken / yazdırırken ve onu düzelten bir ölçekleme seçeneği buldum. Üzgünüm, o noktada çok sinirliydim, basıldım ve devam ettim ve attığım adımları tam olarak not etmedim.
JohnMudd

1
pdftk18.04 ve üstü Ubuntu'da kaldırıldı. Ubuntu'nun kendisi sadece basit durumlarda işe yarayan bir çıtçıt yüklemeyi önerir (belki de dosyalarımı bulamadılar, belki de ana dizinin dışında oldukları için?). Taşındım pdfjam ... --angle 270....
Stéphane Gourichon

42

Ben sadece bu konuya rastladım ve henüz bahsettiğim iyi bir çözüm olmadığını gördüm. (En azından Debian ve Ubuntu'da) pdfjam'ın şu komutlarla geldiğini buldum:

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

Bunun en kolay ve en hızlı yaklaşım olduğunu düşünüyorum. Bunlar düzgün pdfjam komutunu kullanan scriptlerdir. Btw. pdfjam birlikte gelen sanal bir pakettirtexlive-extra-utils


4
90 saatin tersi yönde gidiyor ve 270 saat yönünde gidiyor gibi görünüyor - belki de bundan bahsetmelisin.
Aaron Hall

2
pdf90 gerçekten de ince bir sargıdır. Yine de bir sonek sözleşmesini zorlar. Böylece doğrudan pdfjam kullandım:pdfjam --outfile myoutputfile.pdf --angle 270 --fitpaper true --rotateoversize true myinputfile.pdf
Stéphane Gourichon

16

ImageMagick'i kullanabilirsiniz: displayveya convert- örneğin, saat yönünde kullanmak için

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

Saat yönünün tersine bir dönüş için -90 kullanın.

Not Bu yöntemi yalnızca orijinal görüntü bir bitmap olduğunda kullanın (örn. Tarama ile üretilir). Orijinal görüntü bir bitmap değilse, bu yöntem onu ​​bir haline dönüştürür ve kalite zarar görür. İkinci durumda, lütfen diğer cevaplardaki yöntemlerden birini kullanın.


11
Bu, önce PDF metnini bir resme dönüştürür, böylece boyut artar ve kalite düşer (zaten bir tarama olmadıysa).
aviv

1
Evet, gerçekten, bu yararlı bir hatırlatmadır, ancak bu durumda OP belgeleri taradığını belirtir.
NickD

12
Sonuç pdf kalitesi çok düşük.
Ivan Romanov

Bu yöntem yalnızca taranan orijinaller için iyidir: Zaten bitmapler. Sıradan PDF'ler için yukarıdaki @ aviv adlı kullanıcının yorumuna bakın ve belki de diğer cevabınızdaki yöntemi kullanın.
Nick


12

pdftk , artık bazı kullanım dışı bağımlılıklar nedeniyle Ubuntu 18.04'te kullanılamaz.

Bulduğum en iyi çözüm (grafiksel) pdfshuffler aracıydı .

Kur ve çalıştır. İstediğiniz pdf dosyasını açın, sayfaya sağ tıklayın ve her birini ayrı ayrı çevirin. Ayrıca pdf'leri ve diğer hoş şeyleri harmanlar.

sudo apt install pdfshuffler

1
Her sayfayı manuel olarak döndürmek zorunda mısın? Bu bir anlaşma kırıcı. Kindle'da daha iyi (daha büyük) görüntülemek için yüzlerce sayfa uzunluğunda bir PDF kitabını döndürmem gerekiyor. GÜNCELLEME : Sadece denedim, hayır, tüm sayfaları seçmek için Ctrl-A tuşlarına basıp hepsini tek adımda döndürebilirsiniz.
Gerry Lufwansa

12

Linux Mint 18.3'te (diğer Debian kaynaklı dağıtımlarına da inanıyorum) adlı basit bir komut satırı aracınız var QPDF.

Sen kullanabilirsiniz: qpdf in.pdf out.pdf --rotate==[+|-]angle[:page-range].

Belgelerden :

--rotate = [+ | -] açı [: sayfa menzilli]

Belirtilen sayfalara döndürme uygulayın. Seçenek değerinin sayfa aralığı kısmı, Bölüm 3.5, “Sayfa Seçim Seçenekleri” ndeki sayfa aralıklarıyla aynı biçime sahiptir. Sayfa aralığı belirtilmezse, döndürme tüm sayfalara uygulanır. Parametrenin açı kısmı 90, 180 veya 270 olabilir. + Veya - önceliğinde açı belirtilen sayfaların orijinal rotasyonlarına eklenir veya çıkarılır. Aksi halde sayfaların dönüşleri tam değere ayarlanır. Örneğin, komut qpdf in.pdf out.pdf --rotate=+90:2,4,6 --rotate=180:7-8, sayfa 2, 4 ve 6'yı orijinal dönüşlerinden saat yönünde 90 derece saat yönünde döndürür ve orijinal dönüşlerinden bağımsız olarak sayfa 7'deki dönüşleri 9 ila 180 dereceye qpdf in.pdf out.pdf --rotate=180döndürür ve komut tüm sayfaları 180 derece döndürür.


3
Sayfa aralığını belirlemek, en azından şu anki qpdf sürümümde (8.0.2) zorunlu görünüyor.
Xtreme Biker

6

Çıktı çözünürlüğünü iyileştirmek için (varsayılan 72 DPI'dır), iyi sonuçlar aldım:

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

Bu, taranmış bir belgenin .pdf'si içindi. Bunun -density 300kalitesine göre biraz daha düşük olduğunu buldum -density 200.


Yoğunluk 300, 600 ve hatta 1200 eklenmesi çıktı kalitesinde yalnızca hafif bir iyileşme sağlamıştır.
JohnMudd

1

Sınırlamaları olsa da, özellikle PDF taramalarını döndürmek için oldukça sık PDFedit kullanıyorum. ImageMagick'in dönüşümü (oldukça yüksek yoğunluklu değerler kullanarak) oldukça iyi bir kaliteye ulaşırken, dosyayı da şişirir (orijinal: 155 kiB, 180 ° döndürülmüş kopya: 1.2 MiB). PDFedit, dosya boyutunu gözle görülür biçimde değiştirmeden aynı görüntüyü aynı kalitede döndürür.


çok umut verici geliyor! Ayrıca başvurduğunuz dosya boyutunu büyük ölçüde değiştirme ile ilgili sorunu fark ettim.
Trevor Boyd Smith

0

Bu komutu, pdf dosyalarını, ilk önce dik değilse, dik durmaları için otomatik olarak döndürmek için kullanırım:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/All -sOutputFile="$outputFile" "$file"

Bunun sıfır etkisi oldu.
Colin, Hart,

@ O rotasyon kullanılmasını zorlamak için, ilk etapta dik değilse Yetkim sadece dik aşağı olma belgeyi geri Colin'tHart pdf90ya pdf180ya pdf270bakınız yerine bu cevabı
SebMa
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.