コマンドライン:PDFファイルを90度回転するにはどうすればよいですか?


52

横向きのドキュメントをスキャンすると、出力PDFファイルは縦長になるため、すべてのPDFビューアーはスキャンされたドキュメントを縦長で表示します。

コマンドラインからPDFファイルを90度回転するにはどうすればよいですか?

検索してみたところ、たくさんの解決策を見つけましたが、安定/堅牢なlinux / unixツールを使用する信頼できる解決策[1]のように見えるものを見つけるのに苦労しました。


脚注[1]

たとえば、私が見つけた偶然の解決策のいくつかのサンプルを次に示します。

  • 「Adobe Acrobat Proを使用してファイルを回転し、ファイルを保存するだけです」
  • 「pdfjamを使用」
  • 「pdftkを使用」
  • 「Popplerから$ {PROGRAM_NAME}を使用」
  • 「Imagemagickの変換を使用」-しかし、すべてのコメントは非常に否定的で、「画質が損なわれた」と述べていました。
  • 「PDFビューアーでファイルを開き、回転してから、CUTEPDFやPDFPRINTERなどのPDFプリンターを使用して印刷する」
  • 「$ {PROGRAM_NAME}を使用」、次に「$ {PROGRAM_NAME}」を検索しましたが、「ライセンスの問題によりFedoraが$ {PROGRAM_NAME}を削除しました」

5
「正式なソリューション」はありませんが、さまざまなソリューションが使用する方法を覚えておく必要があります。PDF構造(pdftk、Adobe Acrobat、およびその他のプログラム)の直接操作、画像に変換してからPDFに変換Imagemagickの変換、PDFプリンターを使用した印刷など)。後者は明らかに悪い考えです。
Dirkt

それらの偶然の解決策はどうですか?それぞれにどのように失望しましたか?あなたはなかった、実際にそれらを試してみてください?
simlev

回答:


48

pdftkを使用してください。

  1. 時計回りに回転する場合:

    pdftk input.pdf cat 1-endeast output output.pdf
    
  2. 反時計回りに回転する場合:

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

Fedoraへのpdftkのインストールに関して、このリンクを見つけました。


4
pdftkのマニュアルページには、回転のためのオプションがさらに記載されています。– 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

出力は回転しますが、元の方向に合わせて十分に小さくスケーリングされます。役に立たない。
ジョンマッド

@JohnMudd「元の向きに合うように十分に小さくスケーリングされた」とはどういう意味ですか?ページの回転ではなく、PDFビューアに問題があると思います。
user163859

私の元のPDFは90度回転したレターサイズのページであったため、ページの高さは11 "から8.5"に削減されました。回転を修正しても変化しませんでした。多くのオンラインツールでこれが真実であることがわかりました。結局、変換に問題はないかもしれません。回転したPDFの表示/印刷中にスケーリングオプションを見つけて修正しました。申し訳ありませんが、その時点で非常にイライラしていたので、印刷して先に進み、行った正確な手順を書き留めていませんでした。
ジョンマッド

1
pdftkUbuntu 18.04以降では削除されています。Ubuntu自体は、単純な状況でのみ動作するスナップをインストールすることを提案しています(おそらく、ホームディレクトリの外にあるためにファイルが見つかりませんでしたか?)。に移動しましたpdfjam ... --angle 270...
ステフェイン・グーリッホン

42

私はちょうどこのスレッドにつまずいて、まだ良い解決策が言及されていないことを見ました。(少なくともDebianとUbuntuでは)pdfjamには次のコマンドが付属していることがわかりました。

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

それが最も簡単で最速のアプローチだと思います。これらは、pdfjamコマンドを適切に使用するスクリプトです。ところで pdfjamは付属の仮想パッケージですtexlive-extra-utils


4
90は反時計回りに、270は時計回りに行くように見えます-おそらくそれを言及する必要があります。
アーロンホール

2
pdf90は確かに薄いラッパーです。まだそれは接尾辞規則を強制します。そこで私はpdfjamを直接使用しました。pdfjam --outfile myoutputfile.pdf --angle 270 --fitpaper true --rotateoversize true myinputfile.pdf
StéphaneGourichon 1

16

ImageMagickを使用できます:displayまたはconvert-例えば時計回りに回転させるために使用します

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

-90を使用して反時計回りに回転します。

注意:この方法は、元の画像がビットマップ(スキャンによって生成されるなど)の場合にのみ使用してください。元の画像がビットマップでない場合、このメソッドはそれを1に変換し、品質が低下します。後者の場合、他の回答のいずれかの方法を使用してください。


11
これにより、最初にPDFテキストが画像に変換されるため、サイズが増加し、品質が低下します(既にスキャンのみである場合を除く)。
アビブ

1
はい、確かに、それは便利なリマインダーですが、この場合、OPはドキュメントをスキャンしていると述べています。
NickD

12
結果のpdfは非常に低品質です。
イヴァンロマノフ

この方法は、スキャンされた原稿にのみ適しています。それらはすでにビットマップです。通常のPDFについては、上記の@avivのコメントを参照し、他の回答のメソッドを使用することもできます。
NickD


12

廃止された依存関係のため、pdftkはUbuntu 18.04では使用できなくなりました。

私が見つけた最良の解決策は、(グラフィカルな)ツールpdfshufflerでした

インストールして実行します。目的のPDFファイルを開き、ページを右クリックして、それぞれを個別に回転させます。また、pdfやその他の便利な機能も照合します。

sudo apt install pdfshuffler

1
各ページを手動で回転させる必要がありますか?それは契約違反です。Kindleで見やすく(大きく)表示するには、数百ページにわたるPDFブックを回転させる必要があります。更新:試してみました、いや、Ctrl-Aですべてのページを選択してから、すべてを1ステップで回転できます。
ジェリールフワンサ

12

Linux Mint 18.3(他のDebian派生ディストリビューションも同様だと思います)には、という簡単なコマンドラインツールがありQPDFます。

次を使用できますqpdf in.pdf out.pdf --rotate==[+|-]angle[:page-range]

ドキュメントから

--rotate = [+ |-] angle [:page-range]

指定したページに回転を適用します。オプション値のページ範囲部分は、セクション3.5「ページ選択オプション」のページ範囲と同じ形式です。ページ範囲を省略すると、回転はすべてのページに適用されます。パラメーターの角度部分は、90、180、または270のいずれかです。+または-が前に付いている場合、指定されたページの元の回転に角度が加算または減算されます。それ以外の場合、ページの回転は正確な値に設定されます。たとえば、コマンドqpdf in.pdf out.pdf --rotate=+90:2,4,6 --rotate=180:7-8は、ページ2、4、および6を元の回転から時計回りに90度回転し、元の回転に関係なくページ7から9の回転を180度に強制し、コマンドqpdf in.pdf out.pdf --rotate=180はすべてのページを180度回転します。


3
ページ範囲の指定は、少なくとも現在のqpdfバージョン(8.0.2)では必須のようです。
エクストリームバイカー

6

出力解像度(デフォルトは72 DPI)を改善するために、次の結果が得られました。

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

これは、スキャンされたドキュメントの.pdf用です。-density 300品質がやや低下していることがわかりました-density 200


-density 300、600、さらに1200を追加しても、出力品質はわずかしか改善されませんでした。
ジョンマッド

1

制限はありますが、私はPDFeditをよく使用します。特にPDFスキャンのローテーションに使用します。ImageMagickの変換(かなり高い密度の値を使用)は非常に良い品質を達成しますが、ファイルを膨張させます(元:155 kiB、180°回転コピー:1.2 MiB)。PDFeditは、ファイルサイズを顕著に変更することなく、同じ画像を品質を変えずに回転させます。


とても有望ですね!また、参照するファイルサイズの大幅な変更に関する問題にも気付きました。
トレバーボイドスミス

0

私はこのコマンドを使用して、最初に直立していない場合、pdfファイルを自動的に回転させて直立させます:

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

これによる影響はゼロでした。
コリン 'ハート

@ Colin'tHart私のコマンドは、最初に直立していなかった場合にドキュメントを復元し、回転を強制するpdf90pdf180pdf270代わりにこの回答を
-SebMa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.