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