自炊したPDFのページをコマンドラインで並び替える

自炊した本を読んでいたら、ページの並びが間違っていることに気づきました。1〜160ページは正常、161〜270ページが逆順、271〜364ページは正常。つまり、160ページまで読み、270ページへ飛び、戻りながら161ページへ、そして271ページへ飛び、という順序の本になっていました。

実物の本は廃棄してしまったので、再スキャンはできません。そこで、PDFファイルのページ順序を並び替えることにしました。

pdftk

https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
pdftkをインストールします。(筆者の実行環境はUbuntu16)

$ sudo apt install pdftk

(1) まず、input.pdfファイルを1〜160ページ、161〜270ページ、271〜364ページの3つに分解します。

$ pdftk input.pdf cat 1-160 output part1.pdf $ pdftk input.pdf cat 161-270 output part2.pdf $ pdftk input.pdf cat 271-364 output part3.pdf

(2) part2.pdfを1ページ1pdfに分解します。

# part2_old_split.sh mkdir part2 for ((i=1; i <= 110; i +=1)); do pdftk part2.pdf cat $i output part2/$i.pdf done
$ bash part2_old_split.sh

(3) 各ページのpdfを希望の順序で指定して、part2_new.pdfを作ります。

# part2_new_join.sh echo "pdftk \\" for ((i=110; i >= 1; i -=1)); do echo "part2/$i.pdf \\" done echo cat output part2_new.pdf
$ bash part2_new_join.sh | bash

(4) part1.pdf、part2_new.pdf、part3.pdfを結合して、output.pdfを作成します。

$ pdftk \ part1.pdf \ part2_new.pdf \ part3.pdf \ cat output output.pdf

(5) 必要に応じて、ScanSnapオーガナイザーで、OCR処理して、検索可能なテキストを追加します。

ボツになった方法 ImageMagick convert

まず、convertコマンドpdfファイルをjpg画像に分解します。(自炊したPDFなので、1ページ1画像)

$ convert input.pdf page.jpg

次に、convertコマンドで、jpg画像を希望の順序に指定して、pdfに結合します。

$ convert \ page-0.jpg \ page-1.jpg \ 省略 page-159.jpg \ page-269.jpg \ 省略 page-160.jpg \ page-270.jpg \ 省略 page-363.jpg \ output.pdf

ページ数が多すぎたようで、処理が進みません。システムモニターを見ると、CPUの1コアが100%、32Gのメモリも使いきり、システムモニターの表示もカクカクしていました。コントロールCで中止しました。

タイトルとURLをコピーしました