画像ファイルからpdfを生成する(img2pdf)

Posted by 雅楽斎 on Monday, March 9, 2020

TOC

画像サイズをそのままでというのが実はそんなにない

1ページに1画像をそのまま割り当てるPDFファイルを作ろうとした時に商用ソフトや広告付きのソフト、webサービスはともかくとして、色々頑張ってくれた結果画像が変更されたりしてファイルサイズ何故か大きくなることがありますがそうでもないものの例としてimg2pdfを使います。

webサービスの場合はその特性から最大ファイルサイズが決まっている場合がほとんどですし、元の画像のアップロード、結果ファイルのダウンロードにインターネットを使用するため、ローカルだけで完結できません。

そこでいくつか試してみた結果img2pdfを使うのが一番素直でそのままできるという結論に達しました。

Ubuntuでのパッケージが提供されているimg2pdfですが、その元はPyPIのパッケージです。

Ubuntu – Details of package img2pdf in bionic

img2pdf · PyPI

インストール(Ubuntuの場合)

きちんとメンテされているので、最新がいいと思えばpip install img2pdfpip3 install img2pdf、それほど最新にこだわらなければapt-get install img2pdfでインストールしても良いと思います。

画像ファイルは予め連番でリネームしておくと*で渡せて楽

img2pdfコマンドはシンプルに入力ファイルを引数で指定して出力ファイルを-oで指定します。

$ img2pdf img1.png img2.jpg -o out.pdf

なので、大量のjpgファイルからPDFを生成する場合は予め連番になるようにリネームすることをおすすめします。

連番ファイルをゼロ埋めでリネームする

実際に256ファイルからPDFを生成してみます。

$ img2pdf * -o somebook.pdf
$ ls somebook.pdf -l
-rw-rw-r-- 1 chrx chrx 34799649  3月  9 09:53 somebook.pdf

ということで想定通りのPDFを生成できました。

スポンサーリンク


comments powered by Disqus