1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【WSL】PDF結合をWSLで1コマンドで行う

Posted at

はじめに

何かと面倒なPDFファイルの編集。
ネットで検索するとAdobeの公式サイトほか、様々なサイトが出てくる。
しかし、Adobeは無料会員ではできることが限られているし、ほかのサイトにはプライベートな情報が載ったPDFをアップロードするのは怖い。
色々試した結果、WindowsではWSLにパッケージをインストールしてPDFの結合を行うのが一番手っ取り早い方法だったので、Adobeとの比較もしつつ方法を書いておく。

Adobe Acrobat オンラインツール

「Windows PDF 編集」などと検索するとはじめに行き着くサイト。
https://www.adobe.com/jp/acrobat/online.html

PDFの結合をはじめとして、WordファイルのPDF化やページ順序入れ替えなど、欲しい機能は基本的にすべてそろっている。...ように見えるが、実は有料会員登録しないと使えない機能がほとんど😥

特にPDF結合に関しては、自分が試したところ、

  • 1回目:会員登録なしでできる
  • 2回目:無料会員としてのアカウント登録が必要
  • 3回目:有料会員登録が必要

のようになっているようだった。

有料会員になれば便利な機能が使い放題になるようだが、使用頻度の低いサブスクはなるべく増やしたくないところ。

WSL上でpdfuniteコマンドを導入

※WSLって何?という方は、https://learn.microsoft.com/ja-jp/windows/wsl/faq のページなどがわかりやすいと思います。

さすがUbuntu。UbuntuにはPDFファイルを結合するpdfuniteという夢のコマンドがある。デフォルトでは入っていないので、以下コマンドでパッケージをインストールする。

sudo apt install poppler-utils

この時点で、pdfuniteコマンドが実行可能になる。

pdfunite の実行

あとは実行するだけ。「Ubuntuのコマンドだから、Ubuntu上のファイルしか結合できないのでは?面倒くさそう😓」と思った方がいるかもしれないが、Ubuntu のターミナルからWindowsのファイルのアクセスは、ファイルパスの頭に /mnt/c/と付けるだけでUbuntu内のファイルと同様に扱うことができる。
結合したいPDFファイルがあるディレクトリにまとまっているなら、cdでそのディレクトリに移動しておくとコマンド作りが楽。

# windows 内の PDF が入ったディレクトリに移動。適宜変えてください。
cd /mnt/c/Users/user/Documents/
# pdfunite を実行
pdfunite front_cover.pdf contents.pdf end_cover.pdf output.pdf

pdfunite コマンドでは、結合したいファイルを列挙したあと、作成したいファイル名を最後に書きます。

より発展的な操作

今回書いた pdfunite コマンドは結合の専用のコマンドだが、抽出や回転などさらに発展的なことを行いたい場合は pdftk コマンドをインストールすると実現できるらしい。
https://qiita.com/masashi_mizuno_chestnut/items/14c0b877bed7fee0877b

引数が少し難しそうだったので、結合しかしない場合は pdfuniteで十分そう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?