Befehlszeile: Wie kann eine PDF-Datei um 90 Grad gedreht werden?

52

Wenn ich Dokumente im Querformat scanne, sind die PDF-Ausgabedateien im Hochformat, sodass alle PDF-Viewer die gescannten Dokumente im Hochformat anzeigen.

Wie können Sie eine PDF-Datei über die Befehlszeile um 90 Grad drehen?

Ich habe versucht zu suchen und eine Reihe von Lösungen gefunden, aber ich hatte Probleme, eine Lösung zu finden, die aussah wie eine maßgebliche Lösung [1], die ein stabiles / robustes Linux / Unix-Tool verwendet.


Fußnote [1]

Zum Beispiel hier eine Auswahl der zufälligen Lösungen, die ich gefunden habe:

  • "Verwenden Sie einfach Adobe Acrobat Pro, um die Datei zu drehen und dann zu speichern"
  • "benutze pdfjam"
  • "benutze pdftk"
  • "benutze $ {PROGRAM_NAME} von Poppler"
  • "benutze den Konverter von Imagemagick" - aber dann waren alle Kommentare sehr negativ und sagten "die Bildqualität ist ruiniert"
  • "Öffnen Sie die Datei in einem PDF-Viewer, drehen Sie sie und drucken Sie sie mit einem PDF-Drucker wie CUTEPDF oder PDFPRINTER oder anderen."
  • "benutze $ {PROGRAM_NAME}" dann habe ich nach "$ {PROGRAM_NAME}" gesucht und es gibt etwas über "Fedora hat $ {PROGRAM_NAME} wegen Lizenzproblemen entfernt"
Trevor Boyd Smith
quelle
5
Es gibt keine "autorisierenden Lösungen", Sie sollten jedoch berücksichtigen, welche Methode die verschiedenen Lösungen verwenden: Direkte Bearbeitung der PDF-Struktur (pdftk, Adobe Acrobat und andere Programme), Konvertierung in ein Bild und anschließende Konvertierung in ein PDF (z. B. Imagemagick konvertiert, druckt mit einem PDF-Drucker usw.). Letzteres ist offensichtlich eine schlechte Idee.
Dirkt
Wie ist diese zufällige Lösung ? Wie waren Sie von jedem einzelnen enttäuscht? Hast du sie tatsächlich ausprobiert?
Simlev

Antworten:

48

Benutze einfach pdftk.

  1. Zum Drehen im Uhrzeigersinn:

    pdftk input.pdf cat 1-endeast output output.pdf
    
  2. Zum Drehen gegen den Uhrzeigersinn:

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

Bezüglich der Installation von pdftk auf Fedora habe ich diesen Link gefunden .

user163859
quelle
4
Die Manpage von pdftk enthält weitere Optionen zum Drehen: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
Die Ausgabe wird gedreht, aber immer noch so klein skaliert, dass sie zur ursprünglichen Ausrichtung passt. Nicht hilfreich.
JohnMudd
@JohnMudd Was meinst du mit "klein genug skaliert, um der ursprünglichen Ausrichtung zu entsprechen"? Ich nehme an, Sie haben jetzt ein Problem mit dem PDF-Viewer, nicht mit der Rotation von Seiten.
user163859
Mein ursprüngliches PDF war eine um 90 Grad gedrehte Seite im Letter-Format, sodass die Seitenhöhe von 11 "auf 8,5" reduziert wurde. Hat sich nach der Rotationskorrektur nicht geändert. Bei vielen Online-Tools hat sich dies als richtig erwiesen. Könnte doch kein Problem mit der Konvertierung sein. Ich habe eine Skalierungsoption beim Anzeigen / Drucken von gedrehten PDF-Dateien gefunden, die behoben wurde. Entschuldigung, ich war an diesem Punkt so frustriert, dass ich gerade gedruckt habe und weitergezogen bin und nicht die genauen Schritte notiert habe, die ich unternommen habe.
JohnMudd
1
pdftkwird in Ubuntu 18.04 und höher entfernt. Ubuntu selbst schlägt vor, einen Snap zu installieren, der nur in einfachen Situationen funktioniert. Ich bin umgezogen nach pdfjam ... --angle 270....
Stéphane Gourichon
42

Ich bin gerade auf diesen Thread gestoßen und habe gesehen, dass es noch keine gute Lösung gibt. Ich habe festgestellt, dass pdfjam (zumindest unter Debian und Ubuntu) die folgenden Befehle enthält:

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

Ich denke, das ist der einfachste und schnellste Ansatz. Dies sind Skripte, die den Befehl pdfjam ordnungsgemäß verwenden. Btw. Das pdfjam ist ein virtuelles Paket, das mitgeliefert wirdtexlive-extra-utils

derschueddi
quelle
4
Es sieht so aus, als ob 90 gegen den Uhrzeigersinn und 270 im Uhrzeigersinn laufen - vielleicht sollten Sie das erwähnen.
Aaron Hall
2
pdf90 ist in der Tat eine dünne Hülle. Dennoch wird eine Suffix-Konvention erzwungen. Also habe ich pdfjam direkt verwendet:pdfjam --outfile myoutputfile.pdf --angle 270 --fitpaper true --rotateoversize true myinputfile.pdf
Stéphane Gourichon
16

Sie können ImageMagick verwenden: displayoder convert- zB um es im Uhrzeigersinn zu drehen

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

Verwenden Sie -90 für eine Drehung gegen den Uhrzeigersinn.

NB Nur diese Methode verwenden , wenn das Originalbild ein Bitmap (beispielsweise hergestellt durch Scannen). Wenn es sich bei dem Originalbild nicht um eine Bitmap handelt, wird diese Methode in eine konvertiert, und die Qualität leidet. In letzterem Fall wenden Sie bitte eine der Methoden in den anderen Antworten an.

NickD
quelle
11
Dadurch wird der PDF-Text zuerst in ein Bild konvertiert, sodass die Größe zunimmt und die Qualität abnimmt (es sei denn, es war bereits ein Scan).
Aviv
1
Ja, das ist eine nützliche Erinnerung, aber in diesem Fall gibt das OP an, dass er die Dokumente scannt.
NickD
12
Ergebnis pdf ist von sehr geringer Qualität.
Ivan Romanov
Diese Methode eignet sich nur für gescannte Originale: Es handelt sich bereits um Bitmaps. Für gewöhnliche PDFs siehe @ avivs Kommentar oben und verwenden Sie möglicherweise die Methode in der anderen Antwort.
NickD
12

pdftk ist unter Ubuntu 18.04 aufgrund einiger veralteter Abhängigkeiten nicht mehr verfügbar.

Die beste Lösung, die ich gefunden habe, war das (grafische) Tool pdfshuffler .

Installieren Sie es und führen Sie es aus. Öffnen Sie die gewünschte PDF-Datei, klicken Sie mit der rechten Maustaste auf die Seite und drehen Sie sie einzeln. Es werden auch PDFs und einige andere nette Dinge zusammengestellt.

sudo apt install pdfshuffler
tronic
quelle
1
Müssen Sie jede Seite manuell drehen? Das ist ein Deal Breaker. Ich muss ein hundertseitiges PDF-Buch drehen, um es auf einem Kindle besser (größer) anzeigen zu können. UPDATE : Ich habe es gerade versucht, nein, Sie können Strg-A drücken, um alle Seiten auszuwählen und sie dann in einem Schritt zu drehen.
Gerry Lufwansa
12

In Linux Mint 18.3 (ich glaube auch an andere von Debian abgeleitete Distributionen) haben Sie ein einfaches Befehlszeilentool namens QPDF.

Sie können: qpdf in.pdf out.pdf --rotate==[+|-]angle[:page-range].

Aus der Dokumentation :

--rotate = [+ | -] Winkel [: Seitenbereich]

Wendet die Drehung auf die angegebenen Seiten an. Der Seitenbereichsteil des Optionswerts hat dasselbe Format wie die Seitenbereiche in Abschnitt 3.5, „Seitenauswahloptionen“. Wenn der Seitenbereich weggelassen wird, wird die Drehung auf alle Seiten angewendet. Der Winkelabschnitt des Parameters kann entweder 90, 180 oder 270 sein. Wenn + oder - vorangestellt sind, wird der Winkel zu den ursprünglichen Drehungen der angegebenen Seiten addiert oder von diesen subtrahiert. Andernfalls werden die Seitenrotationen auf den exakten Wert gesetzt. Beispielsweise qpdf in.pdf out.pdf --rotate=+90:2,4,6 --rotate=180:7-8würde der Befehl die Seiten 2, 4 und 6 um 90 Grad im Uhrzeigersinn von ihrer ursprünglichen Drehung drehen und die Drehung der Seiten 7 um 9 bis 180 Grad erzwingen, unabhängig von ihrer ursprünglichen Drehung, und der Befehl qpdf in.pdf out.pdf --rotate=180würde alle Seiten um 180 Grad drehen.

Royi
quelle
3
Die Angabe des Seitenbereichs scheint zumindest in meiner aktuellen qpdf-Version (8.0.2) obligatorisch zu sein.
Xtreme Biker
6

Um die Ausgabeauflösung zu verbessern (Standard ist 72 DPI), habe ich gute Ergebnisse mit:

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

Dies war eine PDF-Datei eines gescannten Dokuments. Ich fand die -density 300reduzierte Qualität etwas im Vergleich zu -density 200.

Greg Ben
quelle
Durch Hinzufügen der Dichte 300, 600 und sogar 1200 konnte die Ausgabequalität nur geringfügig verbessert werden.
JohnMudd
1

Obwohl es seine Grenzen hat, benutze ich PDFedit ziemlich oft, besonders für die Rotation von PDF-Scans. Während ImageMagicks Konvertierung (bei Verwendung von Werten mit relativ hoher Dichte) eine recht gute Qualität erzielt, bläht sie auch die Datei auf (Original: 155 kiB, um 180 ° gedrehte Kopie: 1,2 MiB). PDFedit dreht dasselbe Bild mit unveränderter Qualität, ohne die Dateigröße merklich zu ändern.

ToraKamo
quelle
klingt sehr vielversprechend! Ich bemerkte auch das Problem mit der drastischen Änderung der Dateigröße, auf die Sie verweisen.
Trevor Boyd Smith
0

Ich verwende diesen Befehl, um PDF-Dateien automatisch nach unten zu drehen, wenn sie überhaupt nicht aufrecht sind:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/All -sOutputFile="$outputFile" "$file"
SebMa
quelle
Dies hatte keine Auswirkung.
Colin 't Hart
@ Colin'tHart Mein Befehl stellt nur wieder her, dass das Dokument aufrecht steht, wenn es überhaupt nicht aufrecht steht, um die Drehung zu erzwingen, pdf90oder pdf180oder pdf270stattdessen, siehe diese Antwort
SebMa