用PHP生成PDF文件 with FPDF
What is FPDF?
FPDF is a PHP class which allows to generate PDF files with pure PHP, that is to say without using the PDFlib library. The advantage is that PDFlib requires a fee for a commercial usage. F from FPDF stands for Free: you may use it for any kind of usage and modify it to suit your needs.
FPDF可以讓我們創(chuàng)建pdf文件而不用去調(diào)用PDFlib
這里可以下到最新的windows下的版本:
http://www.fpdf.org/en/dl.php?v=152&f=zip
這里可以下到中文手冊(cè):
http://www.fpdf.org/en/dl.php?id=72
若要其他版本可以到這里下到:
http://www.fpdf.org/
這也是FPDF的官方網(wǎng)站,如果有問(wèn)題可以去上面問(wèn),回復(fù)的挺快的,我上午問(wèn)了1個(gè)問(wèn)題他們下午就回了。不過(guò)那上面的時(shí)間都是美國(guó)時(shí)間。
下面是一個(gè)很簡(jiǎn)單的用FPDF創(chuàng)建一個(gè)pdf文件并添加一頁(yè)的例子
<?
define('FPDF_FONTPATH','fpdf152/font/');
require('fpdf152/fpdf.php');
$pdf = new FPDF;
$pdf->AddPage();
$pdf->Output('a.pdf', 'D');
?>
當(dāng)然也可以用$pdf->open();來(lái)新建一個(gè)pdf文件
但是在這里,Addpage()包含了open(),他同時(shí)完成了新建一個(gè)pdf文件和添加1頁(yè)兩個(gè)步驟
上面例子里的define('FPDF_FONTPATH','fpdf152/font/');定義了存放字體文件的目錄
具體下載了壓縮包后就看到那個(gè)font文件夾了,只要指向那個(gè)文件夾就行了
上面這段程序還不能顯示任何東西
現(xiàn)在來(lái)加兩句
<?
define('FPDF_FONTPATH','fpdf152/font/');
require('fpdf152/fpdf.php');
$pdf = new FPDF;
$pdf->AddPage();
$pdf->SetFont('arial');
$pdf->Text(5,20,'test pdf');
$pdf->Output('a.pdf', 'D');
?>
SetFont()設(shè)定字體,這步在第1次調(diào)用FPDF的時(shí)候一定要,否則pdf文件打開(kāi)時(shí)將會(huì)提示“沒(méi)有定義字型“而什么都不顯示
這里最好定義比較常用的字體,并且中文不支持。
要支持中文或支持比較偏的字體要用到AddFont(),但是我測(cè)試暫時(shí)沒(méi)通過(guò),希望哪位通過(guò)的可以指點(diǎn)一下 ^^
Text()打印一個(gè)字符串,橫坐標(biāo)為5,縱坐標(biāo)為20,字符串內(nèi)容為“test pdf”
關(guān)于最后的Output()里的參數(shù)'D'可以參照手冊(cè)里,寫的很清楚了
這樣導(dǎo)出的pdf文件就會(huì)顯示'test pdf'了。
如果興趣好,再加上張圖片
<?
define('FPDF_FONTPATH','fpdf152/font/');
require('fpdf152/fpdf.php');
$pdf = new FPDF;
$pdf->AddPage();
$pdf->SetFont('arial');
$pdf->Text(5,20,'test pdf');
$pdf->Image('jianxin_mark.jpg', 5, 30, 60, 50);
$pdf->Output('a.pdf', 'D');
?>
Image()可以在pdf中插入圖片,前面是文件名,要包括路徑,5是橫坐標(biāo),30是縱坐標(biāo),60是圖片寬度,50是高度
ok,這樣一個(gè)又有文字又有圖片的pdf文件就建立了 ^^
其實(shí)還有很多功能,手冊(cè)中都有寫,但不是很詳細(xì),需要各位自己去研究發(fā)掘了 ^^
相關(guān)文章
如何在PHP中使用Oracle數(shù)據(jù)庫(kù)(6)
如何在PHP中使用Oracle數(shù)據(jù)庫(kù)(6)...2006-10-10php array_map()數(shù)組函數(shù)使用說(shuō)明
函數(shù)array_map()函數(shù):多數(shù)組回調(diào)函數(shù)---將回調(diào)函數(shù)作用到給定數(shù)組的單元上2011-07-07建立動(dòng)態(tài)的WML站點(diǎn)(二)
建立動(dòng)態(tài)的WML站點(diǎn)(二)...2006-10-10初學(xué)PHP的朋友 經(jīng)常問(wèn)的一些問(wèn)題。不斷更新
將你的項(xiàng)目慢慢寫大, 本人水平也一般, 但是對(duì)于初學(xué)者的一些問(wèn)題也可以回答。 一下就是整理出來(lái)的一些問(wèn)題。方便大家查詢。 有一些是一些朋友問(wèn)我的,如果覺(jué)得放在這里不妥, 請(qǐng)與我聯(lián)系。2011-08-08