准备工作
首先查询了相关的类库,有FPDF,zendPDF,TcPDF等等。首先看了下先选择了FPDF,可以说除了中文字符以外没有什么问题,中文乱码而且看了下最新版本没有很好的解决方案,所以只能放弃。后来就专门找支持中文的发现了TcPDF,开始也是中文字体支持不是很好,但是发现了有人做了中文的语言包才使得TcPDF更加完美起来。
简介
TCPDF 是一个流行的用于生成 PDF 文档的 PHP 类。TCPDF是当前唯一完整支持 UTF-8 Unicode 以及从右至左书写的语言包括双向文稿的 PHP 库。
TCPDF说明文档
一、首先调用TCPDF文件
require_once('tcpdf.php');
二、实例化TCPDF类 页面方向(P =肖像,L =景观)、测量(mm)、页面格式
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
以下是使用TCPDF的示例,做法很简单,看代码吧
1 vendor('Pdf'); 2 $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 3 4 $pdf->SetCreator(PDF_CREATOR); 5 $pdf->SetAuthor('sunnier'); 6 $pdf->SetTitle('123'); 7 $pdf->SetSubject('123'); 8 $pdf->SetKeywords('sunnier'); 9 10 // set default header data 11 $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); 12 13 // set header and footer fonts 14 $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); 15 $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); 16 17 // set default monospaced font 18 $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); 19 20 // set margins 21 $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); 22 $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); 23 $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); 24 25 // set auto page breaks 26 $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); 27 28 // set image scale factor 29 $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 30 31 // set some language-dependent strings (optional) 32 global $l; 33 $pdf->setLanguageArray($l); 34 35 // --------------------------------------------------------- 36 37 // set font 38 $pdf->SetFont('simfang', '', 10); 39 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 40 // Print a table 41 42 // add a page 43 $pdf->AddPage(); 44 45 // 随便写HTML 46 $html = 'adsf'; 47 48 // output the HTML content 49 $pdf->writeHTML($html, true, false, true, false, ''); 50 51 // reset pointer to the last page 52 $pdf->lastPage(); 53 $pdf->Output('哈哈哈'.pdf', 'I'); 54
以上,可以不断添加addPage,添加多页,最后Output输出自己的名字的文件即可。
演示图:
可以看到其中可以插入图片也是没有问题的,写法就按照html写就OK,当然不只是支持HTML,只是这里比较适合这种方式。