小編給大家分享一下thinkphp實現(xiàn)pdf導出的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
成都創(chuàng)新互聯(lián)長期為上千家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為烈山企業(yè)提供專業(yè)的成都網站設計、網站制作,烈山網站改版等技術服務。擁有十余年豐富建站經驗和眾多成功案例,為您定制開發(fā)。
代碼編寫前先引入tcpdf整個文件夾到項目目錄的ThinkPHP文件夾下 如:/ThinkPHP/Library/Vendor/tcpdf
其他的不多說直接上代碼
導出考試結果明細
public function export() { // 導出考試結果明細(PDF) $id = I('id'); $detailed = D('member_test_result'); $parameter = $detailed->detailedResults($id); $name = $parameter['member_name']; $result = json_decode($parameter['test_result_str']); foreach ($result as $k => $v) { $test = M('test_cont'); $array['question_title'] = $test->where('id=' . $k)->getField('qustion_title'); //正確選項 $array['state'] = $test->where('id=' . $k)->getField('state'); //正確答案 $wheres['test_id'] = $k; $wheres['state'] = $array['state']; $array['stateresult'] = M('test_answer')->where($wheres)->getField('answer_name'); //選項 $array['cont'] = $v; //選項內容 $where['test_id'] = $k; $where['state'] = $array['cont']; $array['result'] = M('test_answer')->where($where)->getField('answer_name'); $data[] = $array; } $content = ''; $content .= ''; $content .= ''; $content .= ''; $content .= '考試結果 '; $content .= ''; $content .= ''; $content .= ''; $content .= '
考試結果
'; $content .= ''; $content .= '
姓名:'; $content .= $name; $content .= ''; $content .= '1231'; $content .= ''; $content .= '考試用時:'; $content .= gmdate("i:s", $parameter['time_cost']); $content .= ''; $content .= '1231'; $content .= ''; $content .= '考試分數(shù):'; $content .= $parameter['score']; $content .= ''; $content .= '
'; foreach ($data as $k => $v) { $content .= ''; $content .= $k + 1; $content .= '、'; $content .= $v['question_title']; $content .= '
'; $content .= '您的選項為:'; $content .= $v['cont']; $content .= '
'; $content .= '您的答案為:'; $content .= $v['result']; $content .= '
'; $content .= '正確選項為:'; $content .= $v['state']; $content .= '
'; $content .= '正確答案為:'; $content .= $v['stateresult']; $content .= '
'; }; $content .= ''; $content .= ''; $content .= ''; pdf($content); }
pdf方法
function pdf($html){ vendor('Tcpdf.tcpdf'); $pdf = new \Tcpdf('P', 'mm', 'A4', true, 'UTF-8', false); // 設置打印模式,設置文檔信息 $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('Nicola Asuni'); $pdf->SetTitle('Examination result(考試結果)'); $pdf->SetSubject('TCPDF Tutorial'); $pdf->SetKeywords('TCPDF, PDF, PHP, example, test, guide'); // 是否顯示頁眉和是否顯示頁腳 $pdf->setPrintHeader(false); $pdf->setPrintFooter(true); // 設置頁眉和頁腳信息內容 $pdf->SetHeaderData('logo.jpg', 40, 'Helloweba.com', '小白測試', array(0,64,255), array(0,64,128)); $pdf->setFooterData(array(0,64,0), array(0,64,128)); // 設置頁眉和頁腳字體 $pdf->setHeaderFont(Array('dejavusans', '', '12')); $pdf->setFooterFont(Array('dejavusans', '', '10')); // 設置間距 $pdf->SetHeaderMargin('5'); $pdf->SetFooterMargin('10'); // 設置左、上、右的間距 $pdf->SetMargins('10', '10', '10'); // 設置是否自動分頁 距離底部多少距離時分頁 $pdf->SetAutoPageBreak(TRUE, '15'); // 設置默認等寬字體 $pdf->SetDefaultMonospacedFont('courier'); // 設置行高 $pdf->setCellHeightRatio(1); // 設置圖像比例因子 $pdf->setImageScale(1.25); //設置默認字體子集模式 $pdf->setFontSubsetting(true); // 設置字體 $pdf->SetFont('stsongstdlight', '', 14, '', true); $pdf->AddPage(); $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); //PDF輸出 I:在瀏覽器中打開,D:下載,F(xiàn):在服務器生成pdf ,S:只返回pdf的字符串 $pdf->Output(rand_string('9').'.pdf', 'I'); }
看完了這篇文章,相信你對thinkphp實現(xiàn)pdf導出的方法有了一定的了解,想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!