2012-02-01 14 views
1

私はcodeigniterフレームワークでコード化されたウェブページを持っています。これは利用可能なすべての証明書をリストしています。次に、証明書を印刷するには、その名前をクリックするか、1つ以上の証明書を印刷する場合はチェックボックスをオンにします。Codeigniter - HTMLページを画像に変換するには?

現在のところ、証明書のHTMLを表示するだけで、ユーザーはブラウザを右クリックして印刷をクリックしなければなりません。証明書の1ページ分は問題ありません。

しかし、私は2つ以上の証明書を持っているとき、証明書は完全に積み重なっていません。私が知る限り、htmlページをA4サイズの印刷に設定することはできません。

Codeigniterには画像操作ライブラリがありました。 http://codeigniter.com/user_guide/libraries/image_lib.html

しかし、私が望むものが見つかりませんでした。

これらのhtmlページを画像に変換して後で印刷する方法はありますか?他のライブラリを試してみるべきですか?

答えて

2

DOMPDFを使用してPDFドキュメントを作成します。通常のようにhtmlを生成してから、load view関数の3番目のパラメータを使用してPDF処理のhtmlを返します。

コントローラのようなものです。

$this->load->helper('pdf'); 
    $html = $this->load->view('certificate_view', array(), TRUE); 
    $attachment_location = $_SERVER["DOCUMENT_ROOT"] . '/certs/'.$title.'.pdf'; 
    pdf_create($html, $title, $stream=FALSE, $orientation='portrait'); 
    // send open/save pdf dialog to user 
    header('Cache-Control: public'); // needed for i.e. 
    header('Content-Type: application/pdf'); 
    header('Content-Disposition: attachment; filename="'.$title.'"'); 
    readfile($attachment_location); 
    exit; 

Codeigniter DOMPDFライブラリはhereです。

+0

現在選択されているすべての証明書は、1つの長いhtmlページにレンダリングされます。私が500の証明書を印刷するなら、それはリソースを集中しないでしょうか?または、私はフォルダにPDFを出力するためにプロセスをループし、次に一度に1 pdfを抽出して印刷する必要がありますか? – LithiumRX

+0

私はループ内で単一の証明書ビューを行い、ページ区切り規則を持つ最後の要素divを使用して、HTMLを構築します。 – Rooneyl

+0

私が思いついた解決策は、tcpdfを使用することです。大量の証明書に耐えられるようだ。 – LithiumRX

0

この単純なtutorialを使用すると、HTMLをイメージに変換できます。それはimagickとgdライブラリを使用しません。

+2

私はあなたの答えにいくつかのコード例を示してくれるように助言しましたが、私だけではなかったようです。私はこのようなあなたの答えを投票し始めます。 – DontVoteMeDown

関連する問題