2

Codeigniterによって生成された1つのビューに基づいてPDFを作成したいと思います。ただし、このビューには多くのスタイル付き要素があり、それらにメディアクエリが関連付けられているため、レンダリングされたpdfは、目的の最終ドキュメントにまったく対応していません。

これを達成するための最良の方法は何ですか?現在、mPDFを使用しています。ビューのスナップショットを取り、それを使用してpdfを生成して、関連するスタイルがドキュメント上で正しくレンダリングされるようにする方法はありますか?

今のところ私のコードはこのように見えます

public function generatePDF()
    {
        $this->session_expire();
    $this->load->helper('url');
    $user_id=$this->session->userdata('user_id');
    $this->user_model=$this->db_interface->db_get_user($user_id);
    //  $this->load->helper('url');


        //echo('error aki <br />');
        $data['user'] = $this->user_model;
        $data['objective'] = $this->db_interface->db_get_objectives($this->user_model->get_id());
        $data['list_work'] = $this->db_interface->db_get_list_work_experience($this->user_model->get_id());
        $data['list_education'] = $this->db_interface->db_get_list_education($this->user_model->get_id());
        $data['list_skills'] = $this->db_interface->db_get_skills($this->user_model->get_id());
        $data['list_personal'] = $this->db_interface->db_get_personal_skills($this->user_model->get_id());
        $data['list_links'] = $this->db_interface->get_user_links($this->user_model->get_id());


        $html = $this->load->view('display_user',$data,TRUE);
        //$html = $this->load->view('display_user',$data,TRUE);
       // $this->load->view('display_user',  $html);
        $this->mpdf->WriteHTML($html);
        $this->mpdf->Output();

    }

前もって感謝します

4

1 に答える 1

3

簡単な答え:ある種。

長い答え:2つの選択肢があります。次のことができます。a)スクリーンショットを撮る(PHPを使用したWebサイトのスクリーンショットを参照)。またはb)印刷用のカスタムスタイルシートを作成できます。

後者の方がはるかに簡単です。CSSに関する限り、使用しているライブラリで実行できることには制限があるため、http ://www.mpdf1.com/mpdf/enhancementsを参照してください。

最善の策は、おそらく画面と印刷用に別々のスタイルシートを作成することです。

<link rel="stylesheet" href="screen.css" type="text/css" media="screen">

表示用、および

<link rel="stylesheet" href="print.css" type="text/css" media="print">

印刷用。

print.css見栄えのするスタイル。画面を正確に模倣できる可能性はほとんどありませんが、印刷に必要な情報を首尾一貫して提示するのは簡単なはずです。

于 2012-11-06T16:13:44.857 に答える