2012年4月25日水曜日

TCPDFでPDFが出力されない

今日は本職のPHP作業でメッチャはまったからメモ

今日はPHPからPDFを出力するためにTCPDFなるものを使ってたんだけど、
 なんだかいつの間にかPDFが出力されなくなってしまった。

最初に完成させたページからの出力は問題ないのに、
2番目以降に作成したページからPDFを出力 しようとしたらうまく出ない(´・ω・`)

PDFファイル自体のダウンロードは走るんだけど、そのファイルを開こうとしたら
ファイルが壊れているとのメッセージが表示されて開けない。

ファイルのダウンロードではなくて、ブラウザからPDFを表示しようとすると、
なにやら文字化けのようなメッセージが表示されて終了してしまう。

もうなんてこったいってんで、まずは文字コードらへんから疑ってみることにした。
そう・・・これがそもそもの間違いだった・・・

きっと内部で日本語が文字化けしてPDF作成に悪さしてるんだろうってのが、
最初の目星だったんだけど、これがことごとく空振り

 最終的には

<div>aaa</div>

これだけ書いたHTMLを使って出力してみてもダメだった。

完全に心が折れましたよ。


虚ろな目でネットを徘徊していると、少数ながらこの問題に直面している人を発見

さすがに困っている人がいるだけあって解決している人もいたもんです。

それがここのサイトの解説

http://www.muchacolla.com/php/259/

なんでもPDFの出力メソッドである、
$pdf->Output($filename,'D');

の直前に

ob_end_clean()

の関数をかましてやればいいらしい。


この関数はなんでも

バッファをクリアして、さらに出力のバッファリングをオフにしてくれるらしい
解説はこちら

なるほどバッファね・・・

こいつがいつまでも残っていて、PDFを作ろうとするときに悪さするのか

なるほど

分かってしまえば簡単な話


でも ここまでくるのは長かった~

 今日はしっかり残業したからここまで

次回はAndroidできたらいいな・・・

ねむねむ

にほんブログ村 IT技術ブログへ
にほんブログ村

2 件のコメント:

  1. おかげさまではまる前に解決できました!

    返信削除
    返信
    1. お返事遅くなり申し訳ございません。解決の手掛かりとなれたことうれしく思います。

      削除