PDFLibのpdf_load_font()で Couldn’t open CMap file のエラー
問題
PDFLibで日本語を含むPDFを作ろうとしたとき、pdf_load_font()したら、こんなエラーが出ました。
[error] [client 192.168.0.1] PHP Fatal error: pdf_load_font() [1020] PDF_load_font: Font 'KozGoPro-Medium' with encoding '90ms-RKSJ-H': Couldn't open CMap file '/root/PDFlib/90ms-RKSJ-H' for reading (permission denied) in /xxx/yyy/zzz
PDFが作れません。どうしたらよいでしょう。
答え
日本語入りのPDFを作るので、CMapファイルは欲しい。
でもそんなところ(/root/PDFlib/90ms-RKSJ-H)には置いてない。
permission denied は、プログラム側は、そもそも上の階層の /root の中が見えなくて、あるかどうかすら分からない状況なのでしょう。
CMapファイルは、PDFLib導入時やAdobe製品導入時、印刷・画像処理関連導入時や何かのついでに入っていることがあるようです。
# find /usr/ -type f -name '90ms-RKSJ-H' /usr/share/poppler/cMap/Adobe-Japan1/90ms-RKSJ-H /usr/share/ghostscript/8.70/Resource/CMap/90ms-RKSJ-H
PDFLibには、CMapファイルを置いている場所をオプションで指定すればそこを見てくれます。
PDF_set_parameter($pdf, "SearchPath", "/usr/share/ghostscript/8.70/Resource/CMap");
CMapファイルをどこかから複製してきて、好みの場所に置くのもよいでしょう。
コメント