最近許多人都在問如何把HTML頁面轉換成PDF文件,尤其是在需要打印的時候,HTML頁面可能會導致排版混亂,影響打印效果。而解決這個問題的方法就是使用PHP來生成PDF文件了。
PHP可以使用很多現有的開源庫來生成PDF文件,其中比較常用的有TCPDF、mPDF和FPDF。這些庫均提供了轉換HTML到PDF的功能,下面我們分別看一下這些庫的使用方法。
TCPDF
require_once('tcpdf/tcpdf.php'); $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->SetCreator('PDF CREATOR'); $pdf->SetAuthor('Author'); $pdf->SetTitle('TCPDF Example'); $pdf->SetSubject('TCPDF Tutorial'); $pdf->SetKeywords('TCPDF, PDF, example, test, guide'); $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); $pdf->AddPage(); $filename = 'test.pdf'; $html = 'Hello World
This is a test.
'; $pdf->writeHTML($html, true, 0, true, 0); $pdf->Output($filename, 'D');
使用TCPDF的方法很簡單,只需要先引入TCPDF庫,然后實例化一個TCPDF對象,設置PDF的一些屬性,添加頁面,然后調用writeHTML方法將HTML內容寫入PDF文件中,最后調用Output方法生成PDF文件。這里還需注意的是,TCPDF中所有頁面的排版必須通過對頁面相關屬性的設置來完成。
mPDF
require_once('mpdf/mpdf.php'); $pdf = new mPDF(); $filename = 'test.pdf'; $html = 'Hello World
This is a test.
'; $pdf->WriteHTML($html); $pdf->Output($filename, 'D');
mPDF的使用方法與TCPDF相似,只需要先引入mPDF庫,然后實例化一個mPDF對象,將HTML內容寫入到PDF文件中,最后調用Output方法生成PDF文件即可。不同的是,mPDF中新增的頁面排版默認為自動,如果需要對頁面排版進行更細粒度的控制,需要使用CSS或者設置屬性。
FPDF
require_once('fpdf/fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial', 'B', 16); $pdf->Cell(40, 10, 'Hello World!'); $filename = 'test.pdf'; $pdf->Output($filename, 'D');
FPDF是一款非常輕量級的PDF生成庫,雖然不如TCPDF和mPDF功能豐富,但是對于簡單的PDF生成需求來說,依然是一個很好的選擇。FPDF的使用方法也非常簡單,只需要引入庫,實例化對象,設置字體、大小等屬性,然后添加內容,最后調用Output方法生成PDF文件即可。
除了以上三種庫之外,還有許多其他的PDF生成庫可以使用,如dompdf、wkhtmltopdf等。這些庫基本都是免費開源的,使用方法各有不同,可以根據自己的需求選擇相應的庫。