创建PDF文档是现代Web开发中常见的任务之一。在PHP中,我们可以使用多个开源库来处理PDF文档。
一般来说,创建PDF文档的过程可以分为以下几个步骤:
-
安装PDF库:需要先安装一个支持PDF创建的PHP库。常用的PDF库有TCPDF、FPDF、mPDF等。
-
设置PDF文档参数:设置PDF的标题、页码、页面尺寸、页边距等。
-
添加页面内容:添加文本、图片、表格等内容。
-
输出PDF文档:将PDF文档输出到浏览器或者保存到文件系统。
下面我们以TCPDF为例,简单介绍如何用PHP创建PDF中文文档。
安装TCPDF
TCPDF是一个基于PHP的开源PDF创建库,可以在GitHub上找到它。
安装TCPDF比较简单,只需要将TCPDF下载下来并在你的代码中引入即可。你可以将TCPDF放到你项目的vendor目录下,然后在需要使用它的地方引入。例如:
require_once __DIR__.'/../vendor/tcpdf/tcpdf.php';
设置PDF文档参数
在创建PDF文档之前,我们需要设置一些PDF文档的参数,例如:
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator('My PDF');
$pdf->SetAuthor('Me');
$pdf->SetTitle('My Document');
$pdf->SetSubject('PDF Document');
$pdf->SetKeywords('PDF, My Document, TCPDF');
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
这里我们设置了PDF文档的初始页面方向,页面单位,页面格式等信息,并设置了初始作者、标题、主题等信息。
添加页面内容
有了基本的PDF文档参数设置之后,我们就可以开始添加页面内容了,例如:
$pdf->AddPage();
$pdf->SetFont('droidsansfallback', '', 14);
$pdf->Cell(0, 10, 'Hello, World!', 0, 1, 'C');
这里我们通过AddPage()方法添加了一个新页面,并设置了字体以及输出了一段文本。
示例一
下面是一个更完整的PDF生成示例,它包括以下内容:
- 设置PDF参数;
- 在页面中添加一张图片和一些文字。
// 引入TCPDF库
require_once __DIR__.'/../vendor/tcpdf/tcpdf.php';
// 新建PDF对象
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// 设置PDF文档属性
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Me');
$pdf->SetTitle('My Image Document');
$pdf->SetSubject('PDF with image');
$pdf->SetKeywords('PDF, image, TCPDF');
// 取消页眉页脚
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// 添加一页
$pdf->AddPage();
// 添加图片
$pdf->Image('image.jpg', 50, 50, 100, '', '', '', false, 300, '', false, false, 1, false, false, false);
// 添加一些文本
$pdf->SetFont('droidsansfallback', '', 14);
$pdf->Cell(0, 10, 'My Favorite Image :', 0, 1, 'L');
$pdf->Cell(0, 10, 'Just a big and beautiful image of nature!', 0, 1, 'L');
// 输出PDF
$pdf->Output('myimage.pdf', 'I');
我们通过Image()方法添加了一张图片,并在下面添加了一些文本。
关于Image()方法的参数说明:
- 第一个参数是图片路径;
- 第二个参数和第三个参数是图片在页面中的左上角坐标;
- 第四个参数是图片的宽度;
- 第五个参数是图片的高度;
- 其他参数为可选参数,可以根据需要添加。
示例二
下面是另一个PDF生成示例,它包含以下内容:
- 设置PDF的参数;
- 在页面上生成一个表格。
// 引入TCPDF库
require_once __DIR__.'/../vendor/tcpdf/tcpdf.php';
// 新建PDF对象
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// 设置PDF文档属性
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Myself');
$pdf->SetTitle('My PDF Document');
$pdf->SetSubject('PDF Document Creation');
$pdf->SetKeywords('PDF, TCPDF');
// 取消页眉页脚
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// 添加一页
$pdf->AddPage();
// 设置字体
$pdf->SetFont('droidsansfallback', '', 14);
// 添加表格
$header = array('Id', 'Name', 'Age', 'Sex');
$data = array(
array(1, 'Tom', 18, 'Male'),
array(2, 'Jerry', 17, 'Female'),
array(3, 'Mickey', 19, 'Male'),
);
$pdf->Cell(0, 10, 'Student List', 0, 1);
$pdf->SetFont('droidsansfallback', '', 12);
$pdf->Ln(10);
$pdf->FancyTable($header, $data);
// 输出PDF
$pdf->Output('student.pdf', 'I');
// 定义表格函数
function FancyTable($header, $data)
{
global $pdf;
// 颜色和填充颜色
$pdf->SetFillColor(255, 255, 255);
$pdf->SetTextColor(0);
$pdf->SetDrawColor(0, 0, 0);
$pdf->SetLineWidth(.3);
$pdf->SetFont('', 'B');
// 计算表格的宽度和高度
$w = array(10, 50, 20, 20);
$h = 10;
$total = count($header);
// 输出表头
for ($i = 0; $i < $total; $i++) {
$pdf->Cell($w[$i], 7, $header[$i], 1, 0, 'C', true);
}
$pdf->Ln();
// 输出表格内容
$pdf->SetFont('', '');
foreach ($data as $row) {
for ($i = 0; $i < $total; $i++) {
$pdf->Cell($w[$i], $h, $row[$i], 'LR', 0, 'L', true);
}
$pdf->Ln();
}
$pdf->Cell(array_sum($w), 0, '', 'T');
}
我们通过FancyTable()方法生成了一个带表头和表格数据的表格。
你可以根据需要更改表格宽度、高度等参数。
结论
以上就是利用TCPDF库生成PDF文档的完整示例。
当然,除了TCPDF库,你还可以使用其它的PDF创建库,如FPDF、mPDF等。这些库都有自己的文档和示例,你可以根据需要选择合适的库来创建PDF文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用PHP创建PDF中文文档 - Python技术站