web-dev-qa-db-ja.com

コマンドライン:PDFファイルを90度回転させる方法を教えてください。

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

コマンドラインから、PDFファイルを90度回転させますか?

私は検索してたくさんのソリューションを見つけましたが、安定した/堅牢なlinux/unixツールを使用する信頼できるソリューション[1]のように見えるものを見つけるのに苦労しました。


脚注[1]

たとえば、ここに私が見つけた無計画な解決策のいくつかのサンプルがあります:

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

Pdftkを使用してください。

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

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

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

Fedoraへのpdftkのインストールに関して、私は this link を見つけました。

66
user163859

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

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

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

50
derschueddi

Linux Mint 18.3(他のDebian派生ディストリビューションも信じています)には、QPDFという名前のシンプルなコマンドラインツールがあります。

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

ドキュメントから

--rotate = [+ |-]角度[:ページ範囲]

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

17
Royi

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

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

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

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

17
NickD

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

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

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

Sudo apt install pdfshuffler
14
tronic

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

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

これは、スキャンしたドキュメントの.pdf用でした。見つけた -density 300品質がやや低下-density 200

8
Greg Ben

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

1
ToraKamo

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

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

この質問の解決策ではありませんが、ソフトウェアをインストールしたり、別のWebサイトを使用したりせずにローテーションする方法を見つけました

Ubuntuには、pdfを画像に変換するpdfimagesが付属しています

pdfimages input.pdf output

UbuntuにはImages Viewerも付属していますviewrotateおよびpdfに出力画像

  • 画像ビューアで画像を開く
  • 下部中央の回転ボタンを押します
  • Ctrl + Pで画像をPDFに印刷します
0
thiagola92