php采用fpdf生成中文pdf

fpdf官方网站大陆无法打开。

特意下载了一份,放入我的网盘。需要的朋友去下载

1.小测试

发生一个错误

Deprecated: Function set_magic_quotes_runtime() is deprecated in /Users/mc2/WEB/php/test/pdf/fpdf.php on line 1126

set_magic_quotes_runtime 原因是导致这个提示的原因是在PHP5.3后此特性(set_magic_quotes_runtime())已经关闭。

而且在PHP6中已经完全移除此特性。

你可以注释或者删除掉出错的行,或者是在set_magic_quotes_runtime()前面加@符号。

害怕错误,将这些函数前面都加@符号。

打开fpdf.php这个类库文件,查找set_magic_quotes_runtime 前面都加上@就好了。

2 入门例子

define(‘FPDF_FONTPATH‘,‘font/‘);
require(‘fpdf.php‘);

$pdf=new FPDF();
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont(‘Arial‘,‘B‘,16);
$pdf->Cell(40,10,‘Hello World!‘);
$pdf->Output();

这个办法在浏览器直接显示一个PDF。如果想直接生成文件那么最后一行修改为

$pdf->Output(‘test.pdf‘);

即可生成文件。

3 中文处理

采用那个chinese包来处理中文


require(‘chinese/chinese.php‘);
$pdf=new PDF_Chinese();
$pdf->AddGBFont(‘simhei‘,‘黑体‘);
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont(‘simsun‘,‘‘,20);
$pdf->Cell(40,10,‘Hello World!我们是中文哦‘);
$pdf->Output();

4 图片处理

$pdf->Image(‘sight.jpg‘,20,20,0,0); 各种说法说这个可以生成图片。月小升经过处理,发现加了图片的PDF是文件变大了。不过图片看不见。不知道什么原理

翻开源码,image函数里有set_magic_quotes_runtime 不知道是不是这个玩意儿造成的。

翻遍各种资料,说TCPDF比较流行。下一步研究一下TCPDF.

目前结论FPDF处理不带图片的还行。

中文函数参考

AcceptPageBreak - 接受或不接受自動分頁

AddFont - 加入一個新的字型

AddLink - 建立一個內部連結

AddPage - 加入新的一頁

AliasNbPages - 為每一頁定義一個別名

Cell - 顯示一個儲存格

Close - 使 FDP 文件終止

Error - 嚴重錯誤

Footer - 頁尾

FPDF - PDF 核心建設程式

GetStringWidth - 計算字串的寬度

GetX - 取得現時(X)橫座標的位置

GetY - 取得現時縱座標(Y)的位置

Header - 頁首

Image - 輸出一個圖象

Line - 劃出一條線

Link - 放入一個連結

Ln - 行中斷,換行

MultiCell - 顯示出文字並且則行行中止

Open - 建立一個文件

Output - 儲存或送出文件

PageNo - 取得目前的頁數

Rect - 產生一個矩形

SetAuthor - 設定文件的著作者

SetAutoPageBreak - 設定為自動分頁模式

SetCompression - 啟動(on)或關閉(off)壓縮。

SetCreator - 設定文件的創作者名稱

SetDisplayMode - 設定顯示模式

SetDrawColor - 設定繪畫顏色

SetFillColor - 設定繪畫顏色

SetFont - 設定字型

SetFontSize - 設定字型大小

SetKeywords - 在文件中,把關鍵字聯在一起。

SetLeftMargin - 設定左邊邊界

SetLineWidth - 設定線的寬度

SetLink - 設定內部連結的目的地

SetMargins - 設定頁邊的空白距離

SetRightMargin - 設定右邊的空白距離

SetSubject - 設定文件的主題

SetTextColor - 設定文字的顏色

SetTitle - 設定文件標題

SetTopMargin - 設定頂部空白距離

SetX - 設定目前 x 的位置

SetXY - 設定目前 x 和 y 的位置

SetY - 設定目前 y 的位置

Text - 顯示一個字串

Write - 顯示流暢的文字

在线参考 http://twpug.net/docs/fpdf152/

首发于http://java-er.com - http://java-er.com/blog/fpdf/