[摘要] 介紹基于PHP與FPDF的PDF文檔的動態創建技術,并通過具體的應用示例說明其編程模式。
[關鍵詞] PHP FPDF PDF
一、引言
目前,各類Web應用(如電子商務、電子政務等)日益廣泛與深入。在某些Web應用系統中,需動態創建PDF文檔,供用戶瀏覽、下載或打印。為此,本文提出一種可跨平臺運行的解決方案,即基于PHP與FPDF動態創建PDF文檔。
二、技術簡介
PDF是Adobe公司開發的一種通用的電子文檔格式,目前已成為開放的電子文檔發布的事實標準。PDF具有與平臺無關的特性,在各種系統上均可產生一致的、高質量的輸出,是在Internet上進行文檔發布的理想格式。
PHP是目前流行的Web編程語言,具有開放源碼、完全免費、易學易用以及出色的跨平臺特性、廣泛的數據庫支持等諸多優勢。在PHP中,可使用非免費的PDFlib、ClibPDF或免費的FPDF、TCPDF等函數庫開發具有動態創建PDF文檔功能的Web應用。
FPDF是一個用PHP編寫的、免費的用于生成PDF文檔的類庫,可從網上隨意下載。FPDF具有與PHP一樣的跨平臺運行特性,主要功能包括頁面設置、頁眉及頁腳定義、自動換行與分頁、圖片插入、超鏈接插入、顏色設置、字體設置、頁面壓縮等。下載FPDF類庫并將其解壓到相應的Web目錄中,即可利用fpdf.php中所定義的FPDF類實現PDF文檔的靈活創建。若要創建中文的PDF文檔,則可使用在chinese.php中所定義的繼承自FPDF類的PDF_Chinese類。FPDF中文類庫可從網上單獨下載,解壓后應將chinese.php置于fpdf.php所在的目錄中。
可見,基于PHP與FPDF,再結合數據庫編程,即可實現跨平臺的PDF文檔的動態創建。
三、基本步驟
使用FPDF創建PDF文檔的基本步驟為:
1.利用FPDF類或PDF_Chinese類創建英文或中文的PDF文檔對象實例。
2.調用Open()方法開始建立PDF文檔,并調用AddPage()方法添加一頁。
3.調用SetFont()方法設置字體。對于中文的PDF文檔,可在此前調用AddGBFont()方法添加相應的中文字體。
4.調用Cell()、Write()、Image()等方法向PDF文檔添加內容。
5.調用Output()方法輸出PDF文檔。
關于FPDF及有關方法的具體用法,請參閱其參考手冊。
四、應用示例
為說明FPDF的基本用法,下面略舉一例,即動態創建中文的PDF文檔。
define('FPDF_FONTPATH','fpdf/font/');
require('FPDF/chinese.php');
$pdf=new PDF_Chinese();
$pdf->AddGBFont('simsun','宋體');
$pdf->AddGBFont('simhei','黑體');
$pdf->AddGBFont('simkai','楷體_GB2312');
$pdf->AddGBFont('sinfang','仿宋_GB2312');
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont('simhei','BU',20);
$pdf->Cell(0,10,'題目',0,1,'C');
$pdf->SetFont('Arial','B',18);
$pdf->Cell(0,10,'(Title)',0,1,'C');
$pdf->SetFont('simsun','B',16);
$pdf->Write(8,'內容123...');
$pdf->SetFont('sinfang','BI',16);
$pdf->Write(8,'內容abc...');
$pdf->Ln();
$pdf->SetFont('simkai','',12);
$pdf->Cell(0,8,'(作者單位及姓名)','TB',1,'R');
$pdf->Output();
?>
若客戶端已安裝了PDF閱讀軟件Adobe Reader,則該示例程序的運行結果如圖所示。必要時,可用不同的參數調用Output()方法以改變PDF文檔的輸出方式。
五、結束語
在Web應用中實現PDF文檔的動態創建功能,有利用進一步提高應用的水平,更好地滿足用戶的實際需要。基于PHP與FPDF創建PDF文檔,是一種易于實現的、跨平臺的解決方案。
參考文獻:
[1]武欣郡煜譯:(澳)Luke Welling, Laura Thomson. PHP與MySQL Web開發(原書第3版). 北京:機械工業出版社,2005.582-585
[2] FPDF參考手冊
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。