ImageMagickでPDFを変換できるようにする。

CarrierWaveとMinimagickを利用して、アップロードしたPDFファイルを画像変換させようとしたところ、次のようなエラーが出る。

Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: `identify /var/folders/_l/9yzlbg193032kq9tqz206j4j_d7vyd/T/mini_magick20161127-92446-1sstieq.pdf

` failed with error:

調べてみるとminimagickではなく、ImageMagickがPDFに対応できていないことが問題だった。

ここでは、Mac上でPDFをImageMagickが扱えるようにする手順を紹介する。


事前確認

インストールしているImageMagickがPDFを扱えないことを確認する。

$ idnetify /path/to/sample.pdf

$ echo $?
1 # <= Failed


手順


今のImageMagickをアンインストール

brew uninstallでアンインストールします。

$ brew uninstall imagemagick

これまでインストールしてきた過去のバージョン全てをここでアンインストールする必要はありませんが、きれいにするなら今でしょう。


GhostScriptをインストール

PDFを扱えるようにするために、ghostscriptをインストールします。

$ brew install ghostscript


ImageMagickをソースから再インストール

再インストールしたら完了。

$ brew install imagemagick --build-from-source


確認

identifyコマンドを使って、PDFファイルの情報が取得できればOK。

$ idnetify /path/to/sample.pdf

/path/to/sample.pdf PDF 595x842 595x842+0+0 16-bit sRGB 3.85KB 0.000u 0:00.000