jpg を pdf に変換する

linux mint 20.3 で jpg を pdf に変換します。
以前は簡単にできたような気がしますが、今ではエラーが出て簡単にはいきませんでした。

attempt to perform an operation not allowed by the security policy PDF というエラー

これまでは imagemagik をインストールして以下のようにすれば、簡単に変換することができました。


convert jaf.jpg  jaf.pdf

ところが今回はエラーが出て変換できません。


convert-im6.q16: Corrupt JPEG data: 37 extraneous bytes before marker 0xd9 `jaf.jpg' @ warning/jpeg.c/JPEGWarningHandler/386.
convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.

/etc/ImageMagick-6/policy.xml を書き換える

/etc/ImageMagick-6/policy.xml を書き換えればいいようです。


sudo nano /etc/ImageMagick-6/policy.xml

下の方にある、


<policy domain="coder" rights="none" pattern="PDF" />

を以下のように書き換えます。


<policy domain="coder" rights="read|write" pattern="PDF" />

Corrupt JPEG data: 37 extraneous bytes before marker 0xd9 `jaf.jpg というエラー

このエラーが表示されても実際には pdf は作成されているので、今回は無視します。

ファイルを一括して変換する

jpg から pdf へ、ファイルを一括して変換します。


for f in *.jpg;do convert "$f" "${f/.jpg/}".pdf;done

pdf を png へ


pdftoppm -png nenkin01.pdf imagen