2012-01-17 15 views
2

私はcodeigniterでレポートジェネレータを実行していますが、私はPDFファイルを作成するのにtcpdfを使用しています。Codeigniter HTMLテーブルはTCPDFで描画されていません

まず私はこのようなCodeIgniterのにクエリ結果からテーブルを作成します。

$query = $this->db->query($sql); 
$html = $this->table->generate($query); 

それから私はこのようなPDFコンテンツとしてHTMLを使用します。

$pdf->writeHTMLCell($w = 0, $h = 0, $x = '', $y = '', $html, $border = 0, $ln = 1, $fill = 0, $reseth = true, $align = '', $autopadding = true); 
$pdf->Output($data['path'] . $data['file_name'] . '.pdf', 'F'); 

すべては大丈夫ですが、時にはテーブルは表示されませんが、ヘッダーのようなPDFの残りの部分は正常ですが、テーブルは表示されません。

行内のコンテンツが長すぎると表が表示されないため、何らかのオーバーフローが発生すると思います。

私はこれをやって、列の最大幅を設定しようとしました:

.normal_row{ 
    background-color: #FFFFFF; 
    height: 1em; 
    max-width: 200px; 
} 

をしかし、それは動作しませんでした。

どのようにこの問題を解決するためのアイデアですか?

+0

私はPHPの最大メモリを512Mに増やしました。問題は解決しません。 – Eliel

答えて

0

私が最近発見したように、TCPDFは標準のCSS関数のすべてを持っていません。それは、それぞれがプログラムされなければならないCSS機能(すなわち、パディング、マージンなど)を持たず、挑戦的にem定義を渡しません。あなたはできるだけ古い学校を維持し、可能な限り少ないCSSを使用する必要があります。また、これを見てください:related post

これはわかりましたが、簡単ではありませんが、私は現在のコーディングスタイルでは、特にCSSが中間レベルのCSS機能に関係するオーバーホールが本当に必要であると思います。

私は、少なくともあなたの検索とテストの時間を節約し、実際にはTCPDFが行う機能を見つけ出し、必要なものに合わせようと思います。 TCPDFはまだ更新が必要な優れたライブラリです。

+0

すべてのCSSを削除しても問題は解決しません。問題はメモリのオーバーフローなどと関連しているようです。なぜなら、出力するデータが少なくなるとテーブルが完全に描画されるからです。しかし、ありがとう! – Eliel

1

HTMLテーブル内にテキストが消えるのと同様の問題がありました。あなたと同じ理由ではないかもしれませんが、将来の参考のために - 私の問題は文字 "š"とフォントdejavusansでした。フリーゼンに切り替えたとき、テーブルの内容が正しく描かれました。

関連する問題