本文介绍php生成pdf。我们使用tcpdf开源插件,实现php生成pdf文档。可以插入图片、html、链接、表格、柱状图折线图等php动态生成pdf的功能。
php的pecl扩展有一个叫做pdflib,并且维护到了2014年1月,pdflib库对于个人是免费的,对于商业产品需要购买许可。并且使用相对复杂。因此排除。
本文介绍一款插件,tcpdf!官网http://www.tcpdf.org。下载后在代码中引入即可使用。无需编译/安装其他的扩展。tcpdf的下载包和官网都会提供大量的示例和几十个字体(只是除个别外中文都不能用...)。采用lgpl license开源协议。
下面直奔主题。在官网下载后。假设放在了/var/www/目录下。
//第一步肯定是引入tcpdf的入口文件
require_once '/var/www/tcpdf/tcpdf.php';
//实例化
$pdf = new tcpdf('p', 'mm', 'a4', true, 'utf-8', false);
// 设置文档信息
$pdf->setcreator('lane');
$pdf->setauthor('lane');
$pdf->settitle('php生成pdf');
$pdf->setsubject('php动态生成pdf文件');
$pdf->setkeywords('php pdf tcpdf');
//设置页眉信息 参数分别是logo地址,logo大小,两行标题,标题颜色,分割线颜色。。颜色是rgb
$pdf->setheaderdata('/var/www/tcpdf/examples/images/tcpdf_logo.jpg', 30, 'php生成pdf', 'php如何生成pdf文件', array(0,0,0), array(0,0,0));
//设置页脚信息
$pdf->setfooterdata(array(0,0,0), array(0,0,0));
// 设置页眉和页脚字体
$pdf->setheaderfont(array('stsongstdlight', '', '12'));
$pdf->setfooterfont(array('helvetica', '', '8'));
//设置默认等宽字体
$pdf->setdefaultmonospacedfont('courier');
//设置间距
$pdf->setmargins(15, 27, 15);
$pdf->setheadermargin(5);
$pdf->setfootermargin(10);
//设置分页
$pdf->setautopagebreak(true, 15);
//设置图片比例
$pdf->setimagescale(1.25);
//将页眉页脚的信息输出出来。
$pdf->addpage();
//设置字体 - 正文标题的哦。b是加粗,15是大小
$pdf->setfont('stsongstdlight', 'b', 15);
$pdf->write(20, 'php如何动态生成pdf', '', 0, 'c', true, 0, false, false, 0);
//设置字体 - 正文内容的哦。b是加粗,15是大小
$pdf->setfont('stsongstdlight', '', 10);
//l是左对齐,r是右对齐,c是居中对齐。
$pdf->write(0, $content,'', 0, 'l', true, 0, false, false, 0);
//输出pdf。第二个参数默认是i,是浏览器预览。d是下载
$pdf->output('php_to_pdf.pdf', 'i');
复制并执行上面的代码,会发现浏览器打开了pdf文件预览(如果你的浏览器不是ie的话)。把output的第二个参数换成d,就可以下载了。
说到这里,基本是完成了。但是有个问题哦,你会发现字体很别扭,特别丑。我们可以换个字体,《droidsansfallback》。该字体并未自带。可以通过google百度找到下载的地方,或者在http://sourceforge.net/projects/hawebs/files/assistance/php/droid%20sans%20fallback%20-%20php.zip/download 。 下载解压后,将droidsansfallback.php、droidsansfallback.z以及droidsansfallback.ctg.z这三个文件复制到 tcpdf/fonts/目录下。然后将代码中的stsongstdlight替换成droidsansfallback即可。在执行,就会发现字体好看多了。。当然,可以用tcpdf自带的tcpdf_addfont.php来将其他字体转换成tcpdf识别的字体,再移入tcpdf/fonts/目录下。比如微软雅黑什么的。
以上就介绍了php生成pdf文件,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。