SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

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

関連するメモ

コメント