php制作网页教程pdf,php中pdf页面制作方法
FPDF即“Free PDF”,FPDF類庫提供了基本的PDF創(chuàng)建功能,其源代碼和使用權(quán)是免費(fèi)的。本文主要和大家分享php中pdf頁面制作方法,希望能幫助到大家。
PDF格式文檔優(yōu)勢通用:PDF文檔在UNIX和Windows系統(tǒng)均可正常使用。
安全:PDF文檔可設(shè)置為只讀模式,并且可以添加密碼等保護(hù)措施。
美觀:PDF文檔可以很大程度上兼容中文編碼,并且保留當(dāng)前頁面排版。
精巧:大多數(shù)情況下,生成PDF文檔會(huì)減小文件體積。
FPDF類庫下載FPDF類庫下載地址: http://www.fpdf.org/
FPDF類庫中文插件下載地址: http://www.fpdf.org/download/chinese.zip
FPDF類庫配置下載FPDF文件。
將下載壓縮文件解壓到項(xiàng)目根目錄下。
在項(xiàng)目中引用FPDF類庫(如下代碼)。<?phpdefine ('FPDF_FONTPATH','font/');require_once('fpdf/fpdf.php');?>
FPDF類庫的具體操作
創(chuàng)建對象new FPDF([string page-orientation [, string measure-unit [, string page-format]]]);
/*
page-orientation:可選參數(shù),表示PDF文檔為橫向或縱向,默認(rèn) P
取值:P:縱向 L:橫向
measure-unit:可選參數(shù),表示計(jì)量單元,默認(rèn) mm
取值:pt:點(diǎn) mm:毫米 cm:厘米 in:英寸
page-format:可選參數(shù),紙張類型,默認(rèn) A4
取值: A4、A5、Letter等
*/
添加新頁void AddPage([string page-orientation]);/*
page-orientation:可選參數(shù),表示PDF文檔為橫向或縱向,默認(rèn) P
取值:P:縱向 L:橫向
*/
設(shè)置字體void SetFont(string font [, string style [, float size]]);/*
font:表示字體;
style:可選參數(shù),表示樣式,默認(rèn)為普通樣式;
取值:B:粗體 I:斜體 U:下劃線
size:可選參數(shù),表示字體大小,默認(rèn)為12pt;
*/
增加單元格void Cell(float width, float height, string txt, int border, int ln, string align, boolean fill, string link);/*
width:增加單元格寬度。
height:增加單元格高度。
str:放置在單元格中的文本。
border:單元格邊框。
ln:換行高度,默認(rèn)為0,即換一行。
align:對齊方式,默認(rèn)居左,R時(shí)居右,C時(shí)居中。
fill:是否顏色填充,默認(rèn)false。
link:添加鏈接,默認(rèn)無鏈接.
* Cell()函數(shù)是FPDF中輸出文字的主要方式之一。
*/
輸出文檔String Output([string name [, string dest]]);
/*
name:可選參數(shù),表示要儲(chǔ)存的文件名。
dest:可選參數(shù),操作內(nèi)容。
取值: I:將PDF文檔直接在瀏覽器中顯示。 D:下載PDF文檔。
F:保存為本地文件。
S:返回一個(gè)字符串值。
*/
插入圖片void Image(string file, float x, float y float width, float height);/*
file:圖片路徑。
x:圖片位置的橫坐標(biāo)。
y:圖片位置的縱坐標(biāo)。
width:圖片寬度。
height:圖片高度。
*/
解決中文亂碼問題下載FPDF中的中文插件chinese.php文件,創(chuàng)建PDF_Chinese()對象。
將頁面編碼設(shè)置為GB2312或使用iconv()函數(shù)改變字符串編碼方式。/*示例代碼如下*/<?php
require_once('fpdf/chinese.php'); $pdf=new PDF_Chinese('P','mm','A4'); $pdf -> AddGBFont ('GB',iconv("UTF-8","gbk",'微軟雅黑'));
$pdf -> AddPage ();
$pdf -> SetFont ('GB', '', 20);
$pdf -> Cell(0,0,iconv("UTF-8","gbk",'你好,世界!')); $pdf -> Write (5, iconv("UTF-8","gbk",'你好,世界!'));
$pdf -> Output();
?>
設(shè)置頁眉和頁腳
通過重寫FPDF類中的Header() 方法和Footer() 方法設(shè)置頁眉和頁腳。<?phprequire_once ('fpdf/chinese.php');class PDF extends PDF_Chinese{
function Header(){
$this->SetFont('GB','',10); $this->Write(10,iconv("UTF-8","gbk",'這是頁眉!')); $this->Ln(20);
} function Footer(){
$this->SetY(-15); $this->SetFont('GB','',10); $this->Cell(0,10,iconv("UTF-8","gbk",'這是頁腳!'));
}
}$pdf=new PDF('P','mm','A4');$pdf -> AddGBFont ('GB',iconv("UTF-8","gbk",'微軟雅黑'));
$pdf -> AddPage ();
$pdf -> SetFont ('GB', '', 20);
$pdf -> Cell(0,0,iconv("UTF-8","gbk",'你好,世界!'));$pdf -> Write (5, iconv("UTF-8","gbk",'你好,世界!'));
$pdf -> Output();
?>
設(shè)置/獲取某元素在頁面中的位置void setX(float x);
//設(shè)置某元素在頁面的X坐標(biāo),單位為mm。如x為負(fù)數(shù),則表示自頁面右端向左的距離。void setY(float y [, boolean resetX]);
//設(shè)置某元素在頁面的Y坐標(biāo),單位為mm。如y為負(fù)數(shù),則表示自頁面底部向上的距離。若可選參數(shù)resetX為真則重置X坐標(biāo)。void setXY(float x, float y);
//設(shè)置某元素在頁面的(X,Y)坐標(biāo),規(guī)則如上,定位Y時(shí)不重置X坐標(biāo)。float getX();
//獲得某元素當(dāng)前X坐標(biāo)。float getY();
//獲得某元素當(dāng)前Y坐標(biāo)。
輸出字符串void Write(float h, string txt [, mixed link]);/*
h:定義字符串的行高。
txt:指定輸出字符串。
link:可選參數(shù),設(shè)置鏈接。
*/
換行void Ln([float h]);//h:設(shè)置行高,默認(rèn)值為最后輸出的行的高度。
正文輸出void MultiCell(float width, float height, string txt, int border, string align, boolean fill);/*
width:單元格寬度。
height:單元格高度。
txt:放置在單元格中的文本。
border:單元格邊框,默認(rèn)為0。
align:對齊方式。默認(rèn)居左,R=居右,C=居中。
fill:是否顏色填充。默認(rèn)false。
* MultiCell()函數(shù)是FPDF輸出大段文字的主要方法,可自動(dòng)換行。
*/
繪制表格
利用Cell()函數(shù)循環(huán)創(chuàng)建單元格,最終組成表格。<?phprequire_once ('fpdf/chinese.php');$pdf = new PDF_Chinese('P','mm','A4');$pdf -> AddGBFont();$pdf -> AddPage();$pdf -> SetFont('GB','',14);$header = array('姓名','年齡','性別','工資');$data = array();$data[0] = array('小張','24','男','5,000.00');$data[1] = array('小王','22','女','4,000.00');$width = array(40,40,40,40);for($i=0;$i Cell($width[$i],6,iconv("UTF-8","gbk",$header[$i]),1);
}$pdf -> Ln();foreach($data as $row){ $pdf -> Cell($width[0],6,iconv("UTF-8","gbk",$row[0]),1); $pdf -> Cell($width[1],6,iconv("UTF-8","gbk",$row[1]),1); $pdf -> Cell($width[2],6,iconv("UTF-8","gbk",$row[2]),1); $pdf -> Cell($width[3],6,iconv("UTF-8","gbk",$row[3]),1); $pdf -> Ln();
}$pdf -> Output();?>
注意事項(xiàng)部分資料中含有FPDF類庫的Open()方法,但實(shí)際上類庫中并不包含。使用Open()方法將會(huì)造成錯(cuò)誤。
使用FPDF類生成PDF文件時(shí),編碼格式應(yīng)設(shè)置為GB2312(或GB相關(guān)編碼),否則即使繼承了PDF_Chinese類依然是亂碼。
總結(jié)
以上是生活随笔為你收集整理的php制作网页教程pdf,php中pdf页面制作方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: APP性能测试——内存测试
- 下一篇: php pusher,php – Pus