SOFTELメモ

Softel Inc.

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が作れません。どうしたらよいでしょう。

PDFLib

答え

日本語入りの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ファイルをどこかから複製してきて、好みの場所に置くのもよいでしょう。

関連するメモ

コメント