用PHP來在線生成PDF文檔看似很簡單,實際上做起來並不是那麼回事,所以我也決定把他寫下來,給大家提供一種思路。
在網上搜索“PHP生成PDF”,方法有很多種,下面這三種是網上提到最多的:
■PDFLib:這是一個PHP擴展庫,需要服務器空間安裝並開啟他才行,對於租用空間的廣大屌絲來說,這個辦法是行不通的。
■TCPDF:TCPDF是一個用於快速生成PDF文件的PHP5函數包,他基於FPDF進行擴展和改進而來。這個函數包使用起來偏復雜,試了個把小時還沒有成功就放棄了。
■HTML2PDF:功能非常強大,可以將HTML頁面直接轉換成PDF文檔,只可惜環境配置復雜,幾經努力均告失敗,只能另尋他法。
期間我還找到了pdfcrowd這樣的收費在線PDF轉換平台,顯然收費的東西,客戶是不會接受的,在我幾乎要放棄的時候,我找了FPDF這個原生的函數包。 體積小,使用也很簡單,可以在線的生產PDF文檔,符合客戶的要求。
下面是一段FPDF的調用代碼:
<?php
require('fpdf.php');
class PDF extends FPDF
{
//Cabecera de página
function Header()
{
//Logo
$this->Image('http://www.westationery.com/wp-content/themes/zWenju/images/pdf.jpg',0,0,210);
$this->Ln(15);
}
//Pie de página
function Footer()
{
$this->SetY(-10);
$this->SetFont('Arial','I',8);
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
//Creación del objeto de la clase heredada
$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',12);
$pdf->Image($imgArray[0],10,25+($i-1)*44,37,37,'',get_permalink($post->ID));
$pdf->SetX(53);
$pdf->Cell(43,7,'Model No.:'.get_post_meta($post->ID, "model_no", true),1,0);
//$this->SetX(110);
$pdf->Cell(105,7,str_replace('″','"',get_the_title()),1,1);
$pdf->SetX(53);
$pdf->Output('we.pdf','I');
?>
下面是我利用FPDF在線生產的PDF文檔,有圖片,有鏈接,自動分頁。