dポイントプレゼントキャンペーン実施中!

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();
?>
です。

A 回答 (5件)

php.iniは当方include_dirの追加をしたくらいでした。


検索で出てきたぺージにsession.auto_startの設定でheaderが送信されて
しまうとPDFが表示されないとありました。
http://fpdf.japansite.net/modules/newbb/viewtopi …

これ以前の問題かも知れませんが、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));
}
?>

参考URL:http://fpdf.japansite.net/modules/newbb/viewtopi …
    • good
    • 0
この回答へのお礼

わざわざ度々ありがとうございます。php.iniを見直したところ、ご指摘の通り、session auto_start = 1を0に直し、mbstring.func_overloadを0に設定するか、コメントアウトすることによって、正常に機能することが分かりました。色々とご迷惑をおかけしました。勉強になりました。これからもよろしくお願いします。

お礼日時:2008/02/20 03:31

私のスクリプトで説明をしますね。

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));
}
?>
インクルードエラーでない限り表示されると思います
が・・・試してみてください。
    • good
    • 0
この回答へのお礼

丁寧なお返事ありがとうございます。お返事の通りに一連の操作を行ったり、他のHPを見て、書いてある通りに操作をしたりしたのですが、結果は同じく壊れたdoc.pdfファイルが作成されるだけでした。先の質問にも書いた通り、fpdf.phpファイル自体が機能していないようなので、おそらくphp.iniファイルの設定ミスだと思います。何か情報ありませんか…。

お礼日時:2008/02/19 15:48

以前いろいろFPDFについてはいろいろ調べました。



奮闘記:その55
http://www.geocities.jp/sugachan1973/doc/funto55 …


が詳しいです。奮闘の様子もうかがえますし、面白いです。


ただ帳票用に使うなら茶漬けブログさんのExcel_Reviserを使うのが便利です。
エクセルのテンプレートを使えるので便利です。

エクセルだとデータの出力位置を指定するのが簡単なのでFPDFを使うのに比べて作業量は1/5~1/10程度で出来てしまいます。おすすめです。
おまけに質問などにも丁寧に答えてくれますし。


茶漬けブログ
http://chazuke.com/

参考URL:http://chazuke.com/
    • good
    • 0

当方もOSはWindowsXPです。


インストールする作業は必要がないので
FPDFとJapanese.phpをインクルード出来るところに
保存してインクルードして使用するといった感じです。
    • good
    • 0
この回答へのお礼

要するにインクルード・パスを通すということですか?そんな単純な問題じゃないのかな・・・?

お礼日時:2008/02/15 17:33

私はこのページを参考にして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 …
参考になれば幸いです。

参考URL:http://shikabo.ddo.jp/?cat=72
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございます。しかし、言い忘れましたが、残念なことに、OSはWindows XPを使っています。どなたかWindows XP対応の方法を知りませんか?

お礼日時:2008/02/15 11:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!