
? ? 一個好的程序員能經(jīng)得起各種各樣的甲方需求的折騰,于是如題我碰到了這樣的需求,我能怎么辦,只能老老實實做出來然后發(fā)個博客介樣子--紀(jì)念我踩坑之路的一隅。
? ? 轉(zhuǎn)pdf的php插件有很多,貨比三家我們選擇使用mpdf,下載請問度娘。所以我們只是搬運工。(想要我的mpdf包屬于補課內(nèi)容,私信給)
? ? first:基于tp5框架我們把mpdf下載好放在vendor目錄下

? ? then:開始寫代碼
? ? 1.topdf方法
? ? public function topdf($data,$filename){
? ? ? ? ob_clean();
? ? ? ? vendor('mpdf.mpdf');//尤其注意這里的路徑,要根據(jù)實際路徑情況,照抄會被我坑
? ? ? ? $mpdf = new \mPDF('zh-CN','A4','','',20,20,20,20);//pdf設(shè)置為中文、A4大小、四邊邊距
? ? ? ? $content = self::getProcessHtml($parma);//獲取html方法
? ? ? ? $mpdf? ->? WriteHTML($content);//設(shè)置pdf的html內(nèi)容
? ? ? ? $res = $mpdf? ->? Output($filename,'f');//f為以下載的模式輸出,其它模式問度娘
? ? }
? ? 2.getProcessHtml方法
? ? private function getProcessHtml($data){
? ? ? ? $html = '<div>name:'.$data['name'].'</div>';
? ? ? ? return $html;
? ? }
? ? final:注意
? 1、 這里很多人會想知道css樣式和img圖片怎么加載進(jìn)去,這些是補課內(nèi)容,你可以自己度娘也可以私信我。
? 2、其次就是pdf下載模式。很多時候我們想根據(jù)不同的數(shù)據(jù)下載多個pdf,則需要打包下載。這里提供的方案是使用mpdf的f下載模式,將文件下載緩存,再使用header函數(shù)打包成壓縮文件下載,最后刪除緩存文件。具體細(xì)節(jié)屬于補課內(nèi)容。