やるきなし

2023/02/12 17:22 / ImageMagick で PDF を PNG に変換するメモ

ImageMagickでPDFをPNG等画像に変換する際のメモ.単純には以下で良いのだけど,

% convert input.pdf output.png

この場合 output-0.png, output-1.png, …, output-10.png, output-11.png, … というファイルが生成される.

% convert -scene 1 input.pdf output-%03d.png

とすると output-001.png, output-002.png, … というファイルが生成される.なお,%03d-export.png などとすることも可能.

% convert "input.pdf[11-12]" output-%03d.png

とすると output-011.png, output-012.png が生成される(指定するページ番号は 0 始まり).加えて,

% convert -scene 1 "input.pdf[11-12]" output-%03d.png

とすると,一つ前の例と同じページが output-001.png, output-002.png として生成される.

あと,(レンダリングの)解像度を指定するには -density 100 のように指定する(100 dpi, default は 72 dpi).

なぜ PDF を PNG にしたいかというと,超大なPDFの更新版を頂いた際などに,差分を取ったりするのに使えるから.その際ページ番号の桁が揃っていないと,差分ファイルを見る際に(ファイル名ソートで)面倒なことになる.例えば以下.

% convert -scene 1 input1.pdf %03d-input1.png
% convert -scene 1 input2.pdf %03d-input2.png
% for i in ???-input1.png ; do echo $(compare -metric PSNR $i ${i%-input1.png}-input2.png ${i%-input1.png}-diff.png) ; done

compare はなぜか改行を返してくれないので echo している.

Related articles