您现在的位置是:首页 >技术杂谈 >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_proWWWphp41zhaopinvendorTCPDF cpdf.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_proWWWphp41guanwangpublicuploadspdf/".$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)
以上就是本人用的代码 亲测有效 记得关注和收藏
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。