PHPでPDFを構成するサンプルが実行できない
PHP初心者です。入門書を見て、PDFを構成するというサンプルを打ってたのですが、エラーが出ます。
PDFlibをダウンロードして(本が古かった為そのページが存在せず、自分でPDFlibのサイトを探してPDFlib / PDFlib+PDI / PPS アーカイブファイルのPHPという奴を入れました。)、c:/php/extに入れ、
php.iniでextension=libpdf_php.dllと書き加えました。
プログラムは以下の通りです。
<?php
$objPdf=pdf_new();
pdf_begin_document($objPdf,"","");
pdf_set_info($objPdf,"Author","Yoshihiro Yamada");
$objTmp=pdf_open_pdi($objPdf,dirname(__FILE__)."/template.pdf","",0);
$objPag=pdf_open_pdi_page($objPdf,$objTmp,1,"");
pdf_begin_page_ext($objPdf,10,10,'');
pdf_fit_pdi_page($objPdf,$objPag,0,0,"adjustpage");
$objFnt=pdf_load_font($objPdf,"HeiseiMin-W3","EUC-H","");
pdf_setfont($objPdf,$objFnt,14);
pdf_set_value($objPdf,"leading",20);
pdf_set_text_pos($objPdf,100,600);
pdf_show($objPdf,"サーバサイド技術の学び舎 - WINGS");
pdf_continue_text($objPdf,"http://www.wings.msn.to/");
pdf_end_page($objPdf);
pdf_close($objPdf);
pdf_close_pdi($objPdf,$objTmp);
header("Content-type: application/pdf");
header("Content-disposition: attachment; filename=result.pdf");
print(pdf_get_buffer($objPdf));
pdf_delete($objPdf);
?>
エラーはこんな感じです。
Fatal error: Uncaught exception 'PDFlibException' with message 'Font 'HeiseiMin-W3' with encoding 'EUC-H': Couldn't open CMap file 'EUC-H' for reading (file not found)' in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\day07\pdf_create.php:10 Stack trace: #0 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\day07\pdf_create.php(10): pdf_load_font(Resource id #2, 'HeiseiMin-W3', 'EUC-H', '') #1 {main} thrown in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\day07\pdf_create.php on line 10
多分エラー内容からcmap?という奴がいるみたいでサイトで調べてやってみたのですが、初心者にはちょっと難しくて・・・多分こうだと思って、PDFlibのサイトからcmapをダウンロードして適当なフォルダに入れて、上の構文の「$objPdf=pdf_new();」の下に「PDF_set_parameter($objPdf, 'SearchPath', 'C:/php/pdflib/resource/cmap'); 」としました。
すると、プログラムは実行出来たのですが、すごい文字化けで何もわかりません。。。
すいません。わかる方お願い致します。
お礼
ご回答、ありがとうございます。 無事解決いたしました。 原因としましては、本当にここで質問してしまったのが申し訳ないのですが、 set_parameterで設定しました、searchpathが間違っていました。。。 ですが、教えていただいた、「set_parameter("logging", ~...」という物すら知りませんでしたので、 大変参考になりました。 ご親切なご回答、誠にありがとうございます。