我想创建一个基于一个视图的pdf,由Codeigniter生成。然而,这个视图有很多带样式的元素,以及与之相关的媒体查询,所以呈现的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();
}提前感谢
发布于 2012-11-07 00:13:45
简而言之:差不多吧。
长篇答案:你有两个选择。您可以a)截取屏幕截图(请参阅Website screenshots using PHP );或者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的样式以使其看起来更好。
https://stackoverflow.com/questions/13253316
复制相似问题