準備工做php
首先查詢了相關的類庫,有FPDF,zendPDF,TcPDF等等。首先看了下先選擇了FPDF,能夠說除了中文字符之外沒有什麼問題,中文亂碼並且看了下最新版本沒有很好的解決方案,因此只能放棄。後來就專門找支持中文的發現了TcPDF,開始也是中文字體支持不是很好,可是發現了有人作了中文的語言包才使得TcPDF更加完美起來。html
簡介tcp
TCPDF 是一個流行的用於生成 PDF 文檔的 PHP 類。TCPDF是當前惟一完整支持 UTF-8 Unicode 以及從右至左書寫的語言包括雙向文稿的 PHP 庫。字體
TCPDF說明文檔ui
1、首先調用TCPDF文件spa
require_once('tcpdf.php');code
2、實例化TCPDF類 頁面方向(P =肖像,L =景觀)、測量(mm)、頁面格式orm
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); htm
如下是使用TCPDF的示例,作法很簡單,看代碼吧blog
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,只是這裏比較適合這種方式。