- ベストアンサー
FPDFについて
FPDF 1.53とMBFPDF 1.0bをダウンロードしてきたのですが使い方が分かりません。FPDF 1.53を解凍し、Apacheのhtdocsフォルダにコピーし、マニュアルどおりのもっとも基本的なスクリプト(1)を使っても、「ページを表示できません」か、壊れたdoc.pdfのダウンロードを促されるだけです。次にMBFPDF 1.0bをhtdocsフォルダに上書きコピーし、スクリプト(2)を使ったのですが同様でした。最初にスクリプトを動かした時に、なぜかAdobe Reader8とAdobe Reader7.0が同時にインストールされました。(なぜかAdobe Photoshop Album Mini 3.2なんていうのもインストールされています。)とりあえず英語でも良いから動くようにしたいです。(できれば日本語でも。)誰か分かる方いたらよろしくお願いします。使用したスクリプトは (1) <?php require('fpdf.php'); $pdf=new FPDF(); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?> (2) <?php require('mbfpdf.php'); $pdf=new MBFPDF(); $pdf->AddMBFont(KOZMIN, 'sjis'); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont(KOZMIN, '', 20); $pdf->Write(10,"こんにちはFPDF\n"); $pdf->Output(); ?> です。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
php.iniは当方include_dirの追加をしたくらいでした。 検索で出てきたぺージにsession.auto_startの設定でheaderが送信されて しまうとPDFが表示されないとありました。 http://fpdf.japansite.net/modules/newbb/viewtopic.php?topic_id=100&forum=4 これ以前の問題かも知れませんが、tryとcatchでくくって見るとどこでエラーか分かるかもしれません。 ブラウザの設定によるエラーかも知れませんのでブラウザに出力ではなくローカルに保存という形に変更してみました。 <?php try{ require ('japanese.php'); // 自スクリプトの文字コード define(SC_CHAR, "UTF8"); $pdf = new PDF_Japanese($orientation = 'L', $unit = 'mm', $format = 'A4'); // SJISフォント $pdf->AddSJISFont(); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont('SJIS', '', 14); $pdf->SetTextColor(0, 0, 0); $pdf->Cell(17, 10, sjis_conv("こんにちはFPDF"), 0, 0,C); $pdf->Output("test.pdf", false);//test.pdfで保存 echo "OK\n"; } catch (Exception $e) { $e->getMessage(); } // 文字コードSJIS変換(japanese.phpで使用出来る文字コードはSJISのみ) function sjis_conv($conv_str) { return (mb_convert_encoding($conv_str, "SJIS", SC_CHAR)); } ?>
その他の回答 (4)
- fa-ce
- ベストアンサー率42% (9/21)
私のスクリプトで説明をしますね。Japanese.zipをダウンロード& 解凍してください。 fpdf.phpはこれから使用するjapanese.phpでインクルードして継承して 使うので インクルードするファイルはjapanese.phpですので japanese.phpをスクリプトと同じフォルダか、php.iniで 設定したインクルードパスに収めておいてください。 そして、japanese.phpでfpdf.phpを継承して使うのでfpdf.phpも japanese.phpと同じようにインクルードパスに収めるかスクリプトと同じ階層においてください。 スクリプトの方は <?php require ('japanese.php'); // 自スクリプトの文字コード(私の場合はUTF8なので) define(SC_CHAR, "UTF8"); $pdf = new PDF_Japanese($orientation = 'L', $unit = 'mm', $format = 'A4'); // SJISフォント $pdf->AddSJISFont(); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont('SJIS', '', 14); $pdf->SetTextColor(0, 0, 0); $pdf->Cell(17, 10, sjis_conv("こんにちはFPDF"), 0, 0,C); $pdf->Output(); //↓紹介したページのファンクションをそのまま使用します。 // 文字コードSJIS変換(japanese.phpで使用出来る文字コードはSJISのみ) function sjis_conv($conv_str) { return (mb_convert_encoding($conv_str, "SJIS", SC_CHAR)); } ?> インクルードエラーでない限り表示されると思います が・・・試してみてください。
お礼
丁寧なお返事ありがとうございます。お返事の通りに一連の操作を行ったり、他のHPを見て、書いてある通りに操作をしたりしたのですが、結果は同じく壊れたdoc.pdfファイルが作成されるだけでした。先の質問にも書いた通り、fpdf.phpファイル自体が機能していないようなので、おそらくphp.iniファイルの設定ミスだと思います。何か情報ありませんか…。
- taaaaaaa
- ベストアンサー率38% (31/80)
以前いろいろFPDFについてはいろいろ調べました。 奮闘記:その55 http://www.geocities.jp/sugachan1973/doc/funto55.html が詳しいです。奮闘の様子もうかがえますし、面白いです。 ただ帳票用に使うなら茶漬けブログさんのExcel_Reviserを使うのが便利です。 エクセルのテンプレートを使えるので便利です。 エクセルだとデータの出力位置を指定するのが簡単なのでFPDFを使うのに比べて作業量は1/5~1/10程度で出来てしまいます。おすすめです。 おまけに質問などにも丁寧に答えてくれますし。 茶漬けブログ http://chazuke.com/
- 参考URL:
- http://chazuke.com/
- fa-ce
- ベストアンサー率42% (9/21)
当方もOSはWindowsXPです。 インストールする作業は必要がないので FPDFとJapanese.phpをインクルード出来るところに 保存してインクルードして使用するといった感じです。
お礼
要するにインクルード・パスを通すということですか?そんな単純な問題じゃないのかな・・・?
- fa-ce
- ベストアンサー率42% (9/21)
私はこのページを参考にしてFPDIとJapanese.phpをrequireして 日本語で動作しています。 http://shikabo.ddo.jp/?cat=72 ( このページのFPDIに関する変更は必要ないかと思われます require('fpdi.php'); // 追加 class PDF_Japanese extends FPDI //書換 ) Japanese.zip入手先 http://www.fpdf.org/phorum/read.php?f=1&i=7977&t=7977 参考になれば幸いです。
お礼
早速のお返事ありがとうございます。しかし、言い忘れましたが、残念なことに、OSはWindows XPを使っています。どなたかWindows XP対応の方法を知りませんか?
お礼
わざわざ度々ありがとうございます。php.iniを見直したところ、ご指摘の通り、session auto_start = 1を0に直し、mbstring.func_overloadを0に設定するか、コメントアウトすることによって、正常に機能することが分かりました。色々とご迷惑をおかけしました。勉強になりました。これからもよろしくお願いします。