ウェブサイト検索

LinuxコマンドラインでPDFファイルを作成して結合する方法


PDFファイルは共有を促進するために設計されました。誰でもそれらを開くことができます - 他に何もなければウェブブラウザで。Linuxを使用すると、コマンドラインでPDFファイルを操作、マージ、分割できます。

ポータブル文書フォーマット

ポータブル文書フォーマット(PDF)は問題を解決しました。コンピュータで文書を作成し、他の誰かと共有したいとき、文書を送ることが必ずしも機能しなかったのです。

たとえ彼らがあなたが文書を作成するために使ったのと同じソフトウェアパッケージを持っていたとしても、彼らのコンピュータにはあなたのコンピュータにインストールされているのと同じフォントがないかもしれません。彼らは文書を開くことができるでしょうが、見た目が違ってしまうでしょう。

もし彼らがあなたがパッケージを作成するために使用したソフトウェアのコピーを持っていなければ、まったく開くことができませんでした。もしあなたがLinuxでのみ利用可能なソフトウェアを使用していた場合、そのドキュメントをWindowsだけを使用する誰かに送っても無意味でした。

Adobeは1992年に新しいファイル形式を作成し、ポータブルドキュメントフォーマットと名付けました。その標準(ISO 32000)で作成されたドキュメントには、ファイルの内容を正しく表示するために必要な画像とフォントが含まれています。PDFファイルは、いかなるプラットフォームでもPDFビューアによって開くことができます。それはクロスプラットフォームで、シンプルでエレガントな解決策でした。

PDFファイルは、ワードプロセッサーの文書のように柔軟に編集できることを意図していません。それらは簡単には編集できません。PDFの内容を変更する必要がある場合は、元の資料に戻ってそれを編集し、新しいPDFを生成する方が常に良いです。内容を変更しようとするのとは対照的に、PDFファイルに対して構造的な操作は比較的容易に行うことができます。

LinuxでPDFファイルを作成する方法と、それに適用できるいくつかの変換を実行する方法を紹介します。

LinuxでPDFファイルを作成する

Linuxで利用可能な多くのアプリケーションは、PDFファイルを直接生成することができます。LibreOfficeには、現在のドキュメントのPDFを生成するボタンがツールバーにあります。これ以上簡単なことはありません。

PDF作成の細かい制御のためには、Scribusデスクトップパブリッシングアプリケーションに勝るものはありません。

科学的または数学的な内容の文書を作成する必要がある場合、学術雑誌への提出のために、TexmakerのようなLaTeXを使用するアプリケーションがあなたにとって完璧です。

もしプレーンテキストのワークフローを好むなら、Markdownを使用することもできます。

pandoc

PDFを含む、多くのファイル形式に変換するためのガイドがあります。

pandoc

しかし、簡単な例を示すことで、どれだけ使いやすいかが分かります。

まずTexmakerをインストールしてください。

pandoc

PDF生成にはいくつかのLaTeXライブラリに依存しています。Texmakerをインストールすることは、それらの依存関係を満たす便利な方法です。

その

-o

(出力)オプションは、作成されるファイルの種類を指定するために使用されます。「raw-notes.md」ファイルは、プレーンテキストのMarkdownファイルです。

pandoc -o new.pdf raw-notes.md

「new.pdf」ファイルをPDFビューワで開くと、それが正しく形成されたPDFであることがわかります。

qpdfコマンド

qpdf コマンドを使用すると、既存の PDF ファイルを操作しながら、その内容を保持することができます。変更できるのは構造的なものです。qpdf を使用すると、PDF ファイルのマージ、ページの抽出、ページの回転、暗号化の設定および削除などの作業を実行できます。

Ubuntuにqpdfをインストールするには、このコマンドを使用します:

sudo apt install qpdf

Fedoraでのコマンドは次のとおりです:

sudo dnf install qpdf

Manjaroでは、次のように入力する必要があります:

sudo pacman -S qpdf

PDFファイルの結合

最初は、一部のqpdfコマンドライン構文が混乱を招くことがあるかもしれません。たとえば、多くのコマンドは入力PDFファイルを期待しています。

コマンドが入力ファイルを必要としない場合、代わりに--emptyオプションを使用する必要があります。これは、qpdfに入力ファイルを期待しないように指示します。--pagesオプションを使用すると、ページを選択できます。PDF名のみを指定すると、すべてのページが使用されます。

2つのPDFファイルを結合して新しいPDFファイルを作成するには、このコマンド形式を使用します。

qpdf --empty --pages first.pdf second.pdf -- combined.pdf

このコマンドは次のように構成されています:

  • qpdf: qpdfコマンドを呼び出します。
  • --empty: qpdfに入力PDFがないことを通知します。「first.pdf」と「second.pdf」が入力ファイルであると主張することもできますが、qpdfはそれらをコマンドラインパラメーターと見なします。
  • --ページ: qpdfに対して、ページで作業することを伝えます。
  • first.pdf second.pdf: 抽出するページを含む2つのファイルです。ページ範囲は使用していないので、すべてのページが使用されます。
  • --: コマンドオプションの終了を示します。
  • combined.pdf: 作成されるPDFの名前。

もしlsを使ってPDFファイルを探すと、元の2つのファイルはそのままで、新しいPDFファイル「combined.pdf」が見えるでしょう。

ls -hl first.pdf second.pdf combined.pdf

「first.pdf」には2ページあり、「second.pdf」には1ページあります。新しいPDFファイルには3ページあります。

ワイルドカードを使用して、多くのソースファイルをリストする代わりに使用できます。このコマンドは、現在のディレクトリ内のすべてのPDFファイルを含む「all.pdf」という新しいファイルを作成します。

qpdf --empty --pages *.pdf -- all.pdf

ページを抽出するファイル名の後ろにページ番号や範囲を追加することで、ページ範囲を使用できます。

これは「first.pdf」から1ページ目と2ページ目を抽出し、「second.pdf」から2ページ目を抽出します。「combined.pdf」がすでに存在する場合は上書きされません。選択されたページが追加されます。

qpdf --empty --pages first.pdf 1-2 second.pdf 1 -- combined.pdf

ページ範囲は、好きなだけ詳細にすることができます。ここでは、大きなPDFファイルから非常に特定のページセットを要求しており、要約PDFファイルを作成しています。

qpdf --empty --pages large.pdf 1-3,7,11,18-21,55 -- summary.pdf

出力ファイル「summary.pdf」には、入力PDFファイルのページ1から3、7、11、18から21、および55が含まれています。つまり、「summary.pdf」には10ページあります。

ページ10は出典PDFのページ55であることがわかります。

PDFファイルを分割する

PDFファイルを結合することの反対は、PDFファイルを分割することです。PDFをそれぞれ1ページを保持する別々のPDFファイルに分割するための構文はシンプルです。

分割しているファイルは「summary.pdf」で、出力ファイルは「page.pdf」と指定されています。これは基本名として使用されます。各新しいファイルには基本名に番号が追加されます。--split-pagesオプションは、qpdfに私たちがどのようなアクションを実行しているかを伝えます。

qpdf summary.pdf page.pdf --split-pages

出力は、順番に番号付けされたPDFファイルのシリーズです。

ls page*.pdf

すべてのページを分割したくない場合は、ページ範囲を使用して選択したいページを指定してください。

次のコマンドを実行すると、単一ページのPDFファイルのコレクションを分割します。ページ範囲は、欲しいページまたは範囲を指定するために使用されますが、各ページは依然として単一のPDFに保存されます。

qpdf large.pdf section.pdf --pages large.pdf 1-5,11-14,60,70-100 -- --split-pages

抽出されたページは「section.pdf」に基づいて名前が付けられ、そこに連番が追加されています。

ls section*.pdf

ページ範囲を抽出し、それを単一のPDFに保存したい場合は、この形式のコマンドを使用してください。--split-pagesオプションは含めていないことに注意してください。実際には、ここではPDFのマージを行っていますが、1つのソースファイルからページを「マージ」しているだけです。

qpdf --empty --pages large.pdf 8-13 -- chapter2.pdf

これにより、単一のマルチページPDF「chapter2.pdf」が作成されます。

ページを回転させる

ページを回転させるために、指定されたページを回転させた入力PDFと同じ新しいPDFを作成します。

これを行うために --rotate オプションを使用します。+90 はページを時計回りに90度回転させることを意味します。ページは90度、180度、または270度回転させることができます。また、負の数を使用して反時計回りの回転を指定することもできますが、その必要はほとんどありません。-90度の回転は、+270度の回転と同じです。

コロン ":" で区切られた番号は、回転させたいページの番号です。これはページ番号やページ範囲のリストになる可能性がありますが、今回は最初のページだけを回転させます。すべてのページを回転させるには、ページ範囲を 1-z にしてください。

qpdf --rotate=+90:1 summary.pdf rotated1.pdf

最初のページが私たちのために回転されました。

暗号化と復号化

PDF文書は暗号化でき、開くためにパスワードが必要になります。そのパスワードはユーザーパスワードと呼ばれます。PDFのセキュリティやその他の許可設定を変更するためには、別のパスワードが必要です。それはオーナーパスワードと呼ばれます。

PDFを暗号化するには、--encryptオプションを使用し、両方のパスワードを提供する必要があります。コマンドラインでは、ユーザーパスワードが最初に来ます。

暗号化の強度も指定します。非常に古いPDFファイルビューアをサポートしたい場合は、256ビットの暗号化から128ビットに下げる必要があります。ただし、256ビットの暗号化を維持することをお勧めします。

「summary.pdf」の暗号化されたバージョン「secret.pdf」を作成します。

qpdf --encrypt hen.rat.squid goose.goat.gibbon 256 -- summary.pdf secret.pdf

PDFを開こうとすると、PDFビューアがパスワードを要求します。ユーザーパスワードを入力すると、ビューアにファイルを開く権限が与えられます。

覚えておいてください、qpdfは既存のPDFを変更しません。変更を加えた新しいPDFを作成します。したがって、暗号化されたPDFを作成しても、元の暗号化されていないバージョンはそのまま残ります。状況によっては、元のPDFを削除するか、安全に保管することを検討するかもしれません。

ファイルを復号化するには、--decryptオプションを使用します。明らかに、これが機能するためには所有者のパスワードを知っている必要があります。パスワードを特定するために、--passwordオプションを使用する必要があります。

qpdf --decrypt --password=goose.goat.gibbon secret.pdf unlocked.pdf

「unlocked.pdf」はパスワードなしで開くことができます。

qpdfは素晴らしいツールです

私たちはqpdfに深く感銘を受けています。これはPDFファイルを扱うための柔軟で豊富な機能を備えたツールセットを提供します。また、とても速いです。

彼らの良く書かれた詳細なドキュメントをチェックして、どれだけ多くのことができるかを見てみてください。

関連記事: