Paperclip::Errors::NotIdentifiedByImageMagickErrorが出た
開発環境であるMacでPaperclipを使ってPDFをDBに登録していた時は普通に動いていたのだけれど、Amazon Linux環境で実行したら上記のエラーが出て大変困惑した。
原因:ghostscriptにフォントを登録しなければいけなかった
Qiita: Paperclip::Errors::NotIdentifiedByImageMagickError のページを見て、Paperclipのログを出すようにした。
# config/environments/development.rb
Rails.application.configure do
# 以下を追加し再起動
Paperclip.options[:log] = true
Paperclip.options[:log_command] = true
end
すると、「このフォントわからん」というエラーメッセージが出ていた。
作業中に焦っていたのでそのエラーメッセージを残せてないのが自分でもミスったな…と思うのだけれど、idenfity
コマンドの結果、Meiryo-Boldがないと言われていた。
解決策:IPAフォントを入れて割り当てた
Qiita: Amazon LinuxにIPAフォントをインストールして、Ghostscriptのcidfmapに登録する
このページを参考に、IPAフォントをインストールして、フォントを割り当てた。本物のMeiryo-Boldではないけれど、生成するのはサムネイルで文字の大きさはほとんど見えないレベルなのでそこは気にしないことにした。
フォントのインストール
sudo yum install -y ipa-gothic-fonts ipa-mincho-fonts
フォントを設定する
sudo vi /etc/ghostscript/<バージョン>/cidfmap.local
cidfmap.local
/IPAMincho << /FileType /TrueType /Path (/usr/share/fonts/ipa-mincho/ipam.ttf) /CSI [(Japan1) 6] >> ;
/IPAGothic << /FileType /TrueType /Path (/usr/share/fonts/ipa-gothic/ipag.ttf) /CSI [(Japan1) 6] >> ;
/Ryumin-Light /IPAMincho ;
/Ryumin-Medium /IPAMincho ;
/GothicBBB-Medium /IPAGothic ;
/HeiseiKakuGo-W5 /IPAGothic ;
/HeiseiMin-W3 /IPAMincho ;
/MSGothic /IPAGothic ;
/MSMincho /IPAMincho ;
/Meiryo-Bold /IPAGothic ;
/Meiryo-BoldItalic /IPAGothic ;
このあと、PaperclipでPDFを保存したら、サムネイルが生成された😄
まとめ
ImageMagickのエラーの場合はghostscriptも疑うこと!!