開源網(wǎng)站建設(shè)網(wǎng)站alexa排名
最近在研發(fā)招聘的系統(tǒng)?遇到了這個(gè)問(wèn)題?轉(zhuǎn)換pdf?折騰了很久?分享一下
PHP基于TCPDF第三方類生成PDF文件
最近遇到一個(gè)需求,需要根據(jù)數(shù)據(jù)庫(kù)的字段生成表格式的PDF文件并發(fā)送郵箱
第一步、我們先去官網(wǎng)上面去下載tcpdf的類:http://www.tcpdf.org/
或者是從github上面下載:https://github.com/tecnickcom/tc-lib-pdf-page,這個(gè)第三方類是免費(fèi)開源的。
下載下來(lái)的之后將TCPDF-main文件夾名字更改為TCPDF,并將該文件夾放入vendor文件夾里面
第二步、我們需要進(jìn)行自動(dòng)加載composer,在終端輸入composer dump-autoload -o
然后會(huì)提示您是否執(zhí)行,我們輸入Y。
第三步、就是在我們項(xiàng)目里進(jìn)行引入該第三方類,并實(shí)例化該類的方法。
需要下載中文字體包:
http://pan.baidu.com/share/link?shareid=327612&uk=606208636
解壓后,將字體包中的droidsansfallback.php、droidsansfallback.z以及droidsansfallback.ctg.z這三個(gè)文件復(fù)制到fonts目錄下。
否則生成的PDF文件打開是空白或者是亂碼。
我是在model里面進(jìn)行調(diào)用的第三方類,然后在控制器里面直接使用這個(gè)方法就可以了。

引入該類并實(shí)例化。第二步將我下方的代碼復(fù)制進(jìn)去即可,下方的代碼其實(shí)就是對(duì)PDF的格式進(jìn)行設(shè)置,這個(gè)可以根據(jù)自身情況進(jìn)行修改。
在PHP中進(jìn)行編輯html代碼:

在生成PDF文件的代碼里面加入

這兩個(gè)紅框,一個(gè)是設(shè)置字體,一個(gè)是放HTML代碼。
然后在控制器里調(diào)用:“generate_pdf_files”這個(gè)方法即可。
設(shè)置成功后就像下方的圖片一樣:

下面是TCPDF常用函數(shù)的使用說(shuō)明:
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, ‘UTF-8’, false);
頁(yè)面記得也設(shè)為utf-8
AddPage();新建一個(gè)pdf文檔頁(yè)面。
Image($file, $x, $y, $w, $h, $type, $link, $align, $resize, $dpi, $palign, $ismask, $imgmask, $border);
注:把圖片放語(yǔ)句$pdf->AddPage()之后,而這緊挨著,并且使用絕對(duì)坐標(biāo)定位,即可做背景。
setFont( ‘字體’,‘控制顯示’,字號(hào)) 設(shè)置文字顯示樣式也可單獨(dú)使用
setTextcolor(int,int,int)設(shè)置文本顏色,三個(gè)參數(shù)的值必須在0~255之間
setFontSize(int );設(shè)置字號(hào)
setFillColor(int,int,int) 設(shè)置矩形框之類圖形的填充顏色,三個(gè)參數(shù)值必須在0和255之間
輸入文字:
單行文本
Cell($w, $h=0, $txt=‘’, $border=0, $ln=0, $align=‘’, $fill=0, $link=‘’, $stretch=0)
Cell(寬, 高, 內(nèi)容, 邊框, 是否換行, 文字對(duì)齊, 文字底色,連接, 變寬)
多行文本
MultiCell($w, $h, $txt, $border=0, $align=‘J’, $fill=0, $ln=1, $x=‘’, $y=‘’, $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0)
MultiCell(寬, 高, 內(nèi)容, 邊框,文字對(duì)齊, 文字底色, 是否換行, x坐標(biāo), y坐標(biāo), 變高, 變寬, 是否支持html, 自動(dòng)填充, 最大高度)
html文字
setHtmlLinksStyle($color=array(0,0,255), $fontstyle=‘U’);
setHtmlLinksStyle(顏色默認(rèn)藍(lán)色, U有下劃線);
addHtmlLink($url, $name, $fill=0, $firstline=false, $color=‘’, $style=-1);
addHtmlLink(超鏈接地址, 顯示文字, 是否有底色, $firstline=false, $color=‘’, $style=-1);
換行
Ln($h=‘’, $cell=false);
Ln(行數(shù), 是否cell);
輸出pdf
$pdf->Output(doc.pdf’, ‘I’);
默認(rèn)是 I:在瀏覽器中打開,
D:下載,
F:在服務(wù)器生成pdf ,
S:只返回pdf的字符串