> 文章列表 > TP5 如何导出PDF文件

TP5 如何导出PDF文件

TP5 如何导出PDF文件

前面有一篇文章是写到如何生成PDF文件;最近做的项目是需要生成PDF文件并下载到桌面的一个功能
现在就来讲一下如何实现
1.生成PDF文件,这里我就不在写如何生成了 如果有不知道的朋友请找一下我以前发的文章。
有详细的介绍如何生成PDF文件
2.现在来讲一下如何将PDF文件下载下来
现在有两种方法
1.通过tp5框架自带的http类进行下载

/* 发送文件到客户端* @param string $file* @param bool   $delaftersend* @param bool   $exitaftersend*/public static function sendToBrowser($file, $delaftersend = true, $exitaftersend = true){if (file_exists($file) && is_readable($file)) {header('Content-Description: File Transfer');header('Content-Type: application/octet-stream');header('Content-Disposition: attachment;filename = ' . basename($file));header('Content-Transfer-Encoding: binary');header('Expires: 0');header('Cache-Control: must-revalidate, post-check = 0, pre-check = 0');header('Pragma: public');header('Content-Length: ' . filesize($file));ob_clean();flush();readfile($file);if ($delaftersend) {unlink($file);}if ($exitaftersend) {exit;}}}

这里就是下载的方法;
2.第二种方法就是生成PDF文件的通知直接下载

/* 生成PDF文件* $title:文章标题;$author:作者;$time:时间;$content:文章内容;*/public function generate_pdf_files($title,$author,$time,$content){require_once('D:\\phpstudy_pro\\WWW\\php41\\zhaopin\\vendor\\TCPDF\\tcpdf.php');$pdf = new \\TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->SetCreator(PDF_CREATOR);
//        $pdf->SetTitle('个人简历');// set default header data//$pdf->SetHeaderData( PDF_HEADER_TITLE.' 038', PDF_HEADER_STRING);// set header and footer fonts//$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));//$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));// set default monospaced font$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);//set margins$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);//set auto page breaks$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);//set image scale factor$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);//set some language-dependent strings// $pdf->setLanguageArray($l);// ---------------------------------------------------------// set font//$pdf->SetFont('stsongstdlight', '', 12);$pdf->SetFont('droidsansfallback', '', 12);// add a page$pdf->AddPage("A4","Landscape",true,true);
//        $pdf->Write(0, '', '', 0, 'C', true, 0, false, false, 0);$tbl = $this->index_html($title,$author,$time,$content);//这里放HTML代码$pdf->writeHTML($tbl, true, false, false, false, '');// ---------------------------------------------------------//Close and output PDF document$dir = "D:\\phpstudy_pro\\WWW\\php41\\guanwang\\public\\uploads\\pdf\\/".$title.".pdf";$pdf->Output($dir, "D"); return true;}

这里的Output($dir , “D”);
第一个参数时你保存文件的路径。
第二个就是方法的缩写:
1> “I”.将文件内联发送到浏览器(默认设置)。如果可用,则使用该插件。当在生成PDF的链接上选择“另存为”选项时,将使用由名称给定的名称
2> “D” 发送到浏览器,并强制下载带有名称的文件
3> “F”:保存到本地服务器文件,文件名由name给定
4> “S”: 以字符串形式返回文档(忽略名称)
5> “FI” : 相当于F+I选项
6> “FD”:相当于F + D选项
7> “E” : 以base64 mime多部分电子邮件附件的形式返回文档(RFC 2045)

以上就是本人用的代码 亲测有效 记得关注和收藏