借助TCPDF库,php生成pdf变得很容易,下面上一个demo,先上代码,很简单,都有注释。
<?php
namespace Cn\Controller;
/**
* Class IndexController
* @package Cn\Controller
*/
class IndexController extends BindController {
public function pdf(){
import('Api.Pdf.tcpdf', APP_PATH, '.php');
//实例化
$pdf = new \TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
// 设置文档信息
$pdf->SetCreator('sdxjwkq01');
$pdf->SetAuthor('sdxjwkq01');
$pdf->SetTitle('测试文档');
$pdf->SetSubject('测试文档');
$pdf->SetKeywords('测试文档');
// 设置页眉和页脚信息
$pdf->SetHeaderData('logo.jpg', 20, 'sdxjwkq01', '测试',
array(0,64,255), array(0,64,128));
$pdf->setFooterData(array(0,64,0), array(0,64,128));
// 设置页眉和页脚字体
$pdf->setHeaderFont(Array('stsongstdlight', '', '10'));
$pdf->setFooterFont(Array('helvetica', '', '8'));
// 设置默认等宽字体
$pdf->SetDefaultMonospacedFont('courier');
// 设置间距
$pdf->SetMargins(15, 27, 15);
$pdf->SetHeaderMargin(5);
$pdf->SetFooterMargin(10);
// 设置分页
$pdf->SetAutoPageBreak(TRUE, 25);
// set image scale factor
$pdf->setImageScale(1.25);
// set default font subsetting mode
$pdf->setFontSubsetting(true);
//设置字体
$pdf->SetFont('stsongstdlight', '', 14);
$pdf->AddPage();
$str1 = <<<HTML_ENTITIES
<h1>测试文档</h1>
<hr>
<style>
table{
background-color:#000;
}
table td{
padding:5px 5px 5px 5px;
}
.style1{
background-color:#87CEFF;
}
table tr{
background-color:#ecefec;
}
</style>
<table border='0' cellspacing='1' cellpadding='0'>
<tr style='background-color:#87CEFF;'>
<td bgcolor="#7b8edd"><font>测试</font></td>
<td>测试</td>
<td>测试</td>
</tr>
<tr style='background-color:#87CEFF;'>
<td>测试</td>
<td>测试</td>
<td>测试</td>
</tr>
</table>
HTML_ENTITIES;
$pdf->writeHTML($str1);
//输出PDF
$pdf->Output('t.pdf', 'I');
}
}
然后运行一下,可以看到已经生成相应的pdf
经过测试,基本的css样式都可以得到较好的支持。