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