准备工作
- 首先查询了相关的类库,有FPDF,zendPDF,TcPDF等等。看了下先选择了FPDF,可以说除了中文字符以外没有什么问题,中文乱码而且看了下最新版本没有很好的解决方案,所以只能放弃。后来就专门找支持中文的发现了TcPDF,开始也是中文字体支持不是很好,但是发现了有人做了中文的语言包才使得TcPDF更加完美起来。
简介
- TCPDF 是一个流行的用于生成 PDF 文档的 PHP 类。TCPDF是当前唯一完整支持 UTF-8 Unicode 以及从右至左书写的语言包括双向文稿的 PHP 库。
TCPDF说明文档
- 一、首先调用TCPDF文件
<?php
require_once('tcpdf.php');
?>
- 二、实例化TCPDF类 页面方向(P =肖像,L =景观)、测量(mm)、页面格式
<?php
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
?>
以下是使用TCPDF的示例,做法很简单,看代码吧
<?php
/**
* Created by ZhengNiu.
* User: 77103
* Date: 2019/5/17
* Time: 10:40
*/
require_once './tcpdf/Tcpdf/tcpdf.php';
$pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('ZhengNiu');
$pdf->SetTitle('Welcome to NiuZhengBlog!');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, PHP');
// set default header data
$pdf->SetHeaderData('./touxiang.png', 30, 'Welcome to NiuZhengBlog', '测试', array(0,64,255), array(0,64,128));
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
global $l;
$pdf->setLanguageArray($l);
// ---------------------------------------------------------
// set font
$pdf->SetFont('simfang', '', 14);
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Print a table
// add a page
$pdf->AddPage();
// 随便写HTML
$html = '人呢,可贵之处在于能抓住自己喜欢的人,喜欢的事物,并为之努力,而不是总重复感叹,循环遗憾,后悔是常态,但不是最好的状态。不是每个人都会主动跟你开口的,小孩子才会等待别人来哄你来爱你,成年人只会争取自己想要的爱情。';
// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');
// reset pointer to the last page
$pdf->lastPage();
$pdf->Output('test.pdf', 'I');
可以不断添加addPage,添加多页,最后Output输出自己的名字的文件即可。可以看到其中可以插入图片也是没有问题的,写法就按照html写就OK,当然不只是支持HTML,只是这里比较适合这种方式。
以上附资源下载 链接:微云密码:zt8be0