【PHP】使用TCPDF导出PDF文件

目录

一、安装TCPDF类库

二、安装字体

三、使用TCPDF导出PDF文件


目的:PHP通过TCPDF类库导出文件为PDF。

开发语言及类库:ThinkPHP、TCPDF

效果图如下

【PHP】使用TCPDF导出PDF文件_第1张图片

一、安装TCPDF类库

在项目根目录使用composer安装TCPDF,安装完成后会在vendor目录下生成tecnickcom文件夹,就是TCPDF类库

composer require tecnickcom/tcpdf

二、安装字体

有时候导出的文件是乱码,是因为TCPDF不支持中文,所以需要下载中文字体,字体在网上可以搜索下载,把下载好的字体(ttf格式)放到“\tecnickcom\tcpdf\tools\”目录下,在此目录打开CMD,输入

php tcpdf_addfont.php -i .\msyh.ttf

执行成功后,在“\tecnickcom\tcpdf\fonts\”文件夹下生成相应的文件

【PHP】使用TCPDF导出PDF文件_第2张图片

三、使用TCPDF导出PDF文件

TCPDF类库和字体安装好后,就可以引用TCPDF导出PDF文件了

setPrintHeader(false);
	// 是否显示页脚
	$objPDF->setPrintFooter(true);
	// 设置页脚的字体
	$objPDF->setFooterFont(Array('msyh', '', '8'));
	// 设置页脚距离底部的距离
	$objPDF->SetFooterMargin('7');
	// 设置默认等宽字体
	$objPDF->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
	// 设置行高
	$objPDF->setCellHeightRatio(1.5);
	// 设置是否自动分页  距离底部多少距离时分页
	$objPDF->SetAutoPageBreak(TRUE, '10');
	$objPDF->setFontSubsetting(true);
	$objPDF->AddPage();
	// 设置字体
	$objPDF->SetFont('msyh', '', 12, '', true);

	// 调用拼接html代码方法
	$pdf_html = $this->pdf_html($info,$list,$title);

	$objPDF->writeHTMLCell(0, 0, '', '', $pdf_html, 0, 1, 0, true, '', true);
	// 输出  四种模式 I输出、D下载、F保存本地、S输出二进制字符串
	$objPDF->Output('test.pdf', 'D');
}

上面pdf_html方法是拼接html代码,里面的HTML代码可以根据自己需要修改。CSS样式并不是所有都支持,但也可以用其他HTML标签的代替,比如说font-weight就不支持,可以使用代替。

public function pdf_html($info,$list,$title)
{
	$html = '';
	$html .= '

'.$title.'

班级:'.$info['grade'].'_'.$info['year'].$info['season'].'
总人数:'.$info['student'].'; 已交卷:'.$info['cmit'].'
导出时间:'.date('Y-m-d H:i:s',time()).'
'; foreach ($list as $k => $v) { $html .= '
【'.$v['type'].'】 第'.($k+1).'题:'.$v['title'].'
【正确答案:'.$v['answer'].'】     正确率:'.$v['percent'].'%
选项 选择次数 / 人 比例
A:'.$v['option_A'].' '.$v['sel_A'].' '.$v['percent_A'].'%
B:'.$v['option_B'].' '.$v['sel_B'].' '.$v['percent_B'].'%
C:'.$v['option_C'].' '.$v['sel_C'].' '.$v['percent_C'].'%
D:'.$v['option_D'].' '.$v['sel_D'].' '.$v['percent_D'].'%
E:'.$v['option_E'].' '.$v['sel_E'].' '.$v['percent_E'].'%
F:'.$v['option_F'].' '.$v['sel_F'].' '.$v['percent_F'].'%
G:'.$v['option_G'].' '.$v['sel_G'].' '.$v['percent_G'].'%
作答人数:'.$v['cmit_num'].' 人次

'; } return $html; }

你可能感兴趣的:(PHP,第三方类库,接口使用,pdf,php)