在網頁開發中,經常需要將網頁內容保存為PDF格式。這個時候,我們就需要使用PHP生成PDF了。利用PHP生成PDF的方法有很多種,比如用TCPDF、FPDF或者Dompdf等PHP庫。下面我會分別介紹這三種方法,以及它們的優缺點。
TCPDF
TCPDF是一個非常流行的PHP類庫,可以生成PDF文件。相比其他類庫,TCPDF生成的PDF文件中文支持比較好,支持多頁、圖片、表格等元素。TCPDF的使用非常簡單,我們可以通過在PHP文件中調用它生成PDF。下面是一個示例:
require_once('tcpdf/tcpdf.php'); $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->SetMargins(20, 20, 20); $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); $pdf->AddPage(); $pdf->SetFont('dejavusans', '', 14); $pdf->Write(5, 'Hello World!'); $pdf->Output('example.pdf', 'I');
上面的代碼使用TCPDF生成一個PDF文件,其中TCPDF類庫在代碼的第一行被導入。PDF文件的第一頁將會被創建,設置了頁面邊距,打印頭和尾將不會被輸出。然后使用SetFont()方法設定字體類型和大小,Write()方法在頁面上輸出“Hello World!”,最后用Output()方法輸出PDF文件到瀏覽器。
FPDF
FPDF是另一個流行的PHP庫,可以用來生成PDF。相比TCPDF,FPDF更加簡單易用。但是它的中文支持稍微差了一點,不支持HTML標記。下面是一個生成PDF的代碼:
require('fpdf/fpdf.php'); $pdf=new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output();
上面的代碼使用了FPDF類庫,Output()方法將PDF文件輸出到瀏覽器。FPDF的使用非常簡單,只需要調用方法輸出文字,設置字體、大小等。
Dompdf
Dompdf是另一個非常流行的PHP庫,可以用來將HTML轉換成PDF。它支持多種CSS樣式和HTML標簽,可以生成高質量的PDF文件。但是相比其他庫,Dompdf的速度稍慢一些。下面是一個將HTML代碼轉換成PDF的代碼示例:
require 'dompdf/autoload.inc.php'; use Dompdf\Dompdf; $dompdf = new Dompdf(); $html = <<<HTML <html> <body> <h1>Hello World</h1> </body> </html> HTML; $dompdf->loadHtml($html); $dompdf->setPaper('A4', 'portrait'); $dompdf->render(); $dompdf->stream("example.pdf");
上面的代碼包含了將HTML轉換成PDF文件的全部過程。首先導入類庫,然后創建一個Dompdf對象。將HTML代碼傳遞給loadHtml()方法,該方法會將HTML轉換成PDF文件。然后設置頁面的大小和方向,最后使用render()方法渲染PDF文件。最后調用stream()方法輸出到瀏覽器或者可以使用save()方法將文件保存到本地。
小結
通過以上介紹,我們可以看到生成PDF的方法有很多種,每種方法有它獨特的優點。因此,在選擇PHP生成PDF的方法時,需要根據自己的需求選擇最適合自己的方法。比如需要中文支持和文檔排版比較復雜的情況下,可以選擇TCPDF和Dompdf;需要代碼簡單、易于使用的情況下,可以選擇FPDF。不過,在使用PHP生成PDF時,需要注意一些細節,比如設置頁面方向、設置字體大小和類型等。只有在掌握了這些細節之后,PHP生成PDF的效果才會更加優秀。