您的位置:首页 > 理论基础 > 计算机网络

ThinkPHP5/PHP 使用TCPDF 生成PDF文件

2017-11-22 15:08 561 查看
由于公司业务需求,需要生成PDF文件。

网上找了一些解决方案,很多是使用composer插件解决问题的。由于同事的顾虑,建议。把网上找的TCPDF插件包,当作第三方组件来使用,放在extend 扩展文件夹中。

确认tcpdf 会用到的文件,都加上命名空间 namespace com\tcpdf\methods;  不然会找不到对应的类文件



(说明:我把library 文件夹改名成methods,因为引入上述方法类的时候关键词冲突。文件中使用一些配置常量的,需要引入配置文件)

这个控制文件也需要使用命名空间  namespace com\tcpdf;

//引入插件包中的方法类
use com\tcpdf\methods\tcpdf_font_data;

use com\tcpdf\methods\tcpdf_fonts;

use com\tcpdf\methods\tcpdf_colors;

use com\tcpdf\methods\tcpdf_images;

use com\tcpdf\methods\tcpdf_static;

//引入配置文件(我写的是model类,所以引入文件有点差异)

Config::load(EXTEND_PATH.'com/tcpdf/config/tcpdf_config.php');

Config::load(EXTEND_PATH.'com/tcpdf/tcpdf_autoconfig.php');

//初始化TCPDF类

$tcpdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT,true, 'UTF-8', false);

//设置作者,标题,文件属性
$tcpdf->SetCreator('CREATOR');

$tcpdf->SetAuthor('zeng94731');

$tcpdf->SetTitle('TITLE');

$tcpdf->SetSubject('SUBJECT');

$tcpdf->SetKeywords('PDF, TCPDF');

// 设置页眉和页脚信息
$tcpdf->setHeaderData('', 30, 'zeng94731', 'zeng94731的博客', array(0,64,255), array(0,64,128));

$tcpdf->setFooterData(array(0,64,0), array(0,64,128));

// 设置页眉和页脚字体
$tcpdf->setHeaderFont(Array('stsongstdlight', '', '10'));

$tcpdf->setFooterFont(Array('helvetica', '', '8'));

//设置文档对齐,间距,字体,图片
$tcpdf->SetCreator(PDF_CREATOR);

$tcpdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

$tcpdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

//设置页眉页脚 边距

$tcpdf->setHeaderMargin(PDF_MARGIN_HEADER);

$tcpdf->setFooterMargin(PDF_MARGIN_FOOTER);

//自动分页

$tcpdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

$tcpdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

$tcpdf->setFontSubsetting(true);

$tcpdf->setPageMark();

//设置正文字体,大小   (stsongstdlight,网上说这个字体支持的文字更全,支持中文不乱码)

$tcpdf->SetFont('stsongstdlight', '', 10);

//创建页面,渲染PDF
$tcpdf->AddPage();

$html = '<h1>test</h1>';

$tcpdf->writeHTML($html, true, false, true, true, '');

$tcpdf->lastPage();

//PDF输出   I:在浏览器中打开,D:下载,F:在服务器生成pdf ,S:只返回pdf的字符串
$tcpdf->Output($filePath,'D');

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pdf tcpdf thinkphp