山下泰平の趣味の方法

これは趣味について考えるブログです

大量の PDF から特定ページを抜き出してひとつにまとめる方法

PDF の雑誌や新聞などを調べる際に、大量の PDF から特定ページを抜き出してひとつにまとめると便利になることがある。雑誌の特定記事だけ読みたいだとか、新聞の二面だけ連続して読み続けたいなど、いろいろなケースがあると思う。

私もそういう状況になって、大量の PDF から特定ページを抜き出してひとつにまとめたので情報を共有しておく。私の環境は macOS だけど、Windows の WSL や Android の tmux などでも同じことができる。

こういうことはコンピュータを使いまくってる人なら一瞬でできることで、わざわざ書くまでもないようなことなんだけど、こういうことが必要になる人はあまりコンピュータに詳しくないことが多いといった状況があるような気がする。こういうことができるようになると、昔だったら1年かかってた調査も1週間で終ってしまったりする。1週間でできるようになると、より幅広いことが調べられたり、よりよい精度で調べることができるようになる。

そんなわけで必要な人は頑張ってみてください。

PDF の特定ページを抜き出したりまとめるためのツールをインストールする。

"PDF" "特定ページ" "コマンド" とかで調べる。"コマンド" の部分は Linux とかでもいいと思う。

私の場合は pdftk を使ったけど、mutool でもなんでも好みで選んだら良いと思われる。

シェルスクリプトを書く

大量のデータを処理する場合、シェルスクリプトというのを使う。色々な方法があるんだけど、あんま知らない人はシェルスクリプトが一番敷居が低いと思う。

今回の処理をする場合、インストールしたツールの使い方を調べて、シェルスクリプトを書くみたいな感じである。シェルスクリプトを知らない人は、"シェルスクリプト" "入門" とかで検索したらいいと思う。残念ながら私はシェルスクリプトはあんまり知らないので解説できません。

今回のケースだと、私の場合は次みたいな感じでできた。ひとつのフォルダに処理したいPDFを移動させて、その中に tmp っているフォルダを作る。真ん中にある数字が抜き出したいページ数、これをファイルに書いて実行権限を加えて実行するとページを抜き出すことができる。

#!/bin/zsh
foreach file (*.pdf)
pdftk $file cat 3 output tmp/$file
end

結合したい場合は tmp に移動してターミナルで次みたいに実行する。

pdftk *.pdf cat output out.pdf

これでページがまとまる。

f:id:cocolog-nifty:20200108113504p:plain