TCPDF使用說明

最近項目中使用報表,需要用到php來生成pdf文件,採用目前較流行的tcpdf插件,評論區有如何解決亂碼的答案,如有問題,希望有機會評論交流。

調用tcpdf文件

require_once('tcpdf.php');
設置時區,否則會導致報錯
date_default_timezone_set('Asia/Shanghai');
實例化tcpdf
頁面方向(P =肖像,L =景觀)、測量(mm)、頁面格式
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); 
設置文檔信息
$pdf->SetCreator('Helloweba');
$pdf->SetAuthor('yueguangguang');
$pdf->SetTitle('Welcome to helloweba.com!');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, PHP');
擴展,自定義頁眉頁腳
設置pdf背景圖片
$image_file = K_PATH_IMAGES.'bkground.png';
$this->Image($image_file, 0, 0, 210, 15, '', '', '', false, 300, '', false, false, 0);
設置背景顏色(需要注意,只能設置一個)
$this->Rect(0,0,210,297,'F','',$fill_color = array(255, 255, 255));
設置字體(droidsansfallback該字體爲導入字體,支持中文)
$this->SetFont('droidsansfallback', 'B', 13);
設置文本顏色
$this->SetTextColor(171,171,171);
設置表內內容距離邊框的距離。分別左、上、右、下。
$this->setCellPaddings(15, 10, 5, 0);
$this->setCellMargins(0, 1, 0, 0);//
$this->Cell(180, 15, '測試', 0, true, 'L', 0, '', 0, true, 'M', 'M');
$this->SetFont('droidsansfallback', 'B', 8);
注意如想在不同位置設置文字,可多次使用setCellPaddings()不會產生衝突。
設置表內內容距離邊框的距離。分別左、上、右、下。
$this->setCellPaddings(13, 10, 5, 2);
設置是否打印頁眉頁腳,即去掉默認橫線
$pdf->setPrintHeader(true); //設置打印頁眉
$pdf->setPrintFooter(false); //設置打印頁腳
設置默認頁眉頁腳相關參數
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 061', PDF_HEADER_STRING);
設置頁眉頁腳字體
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
設置PDF頁面邊距(margin)
$pdf->SetMargins(1, 15, 1);//左、右、上
$pdf->SetAutoPageBreak(TRUE, 15);//下
設置圖片縮放比例
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
添加一個頁面包含結束符
$pdf->AddPage();
$pdf->lastPage();
設置行距
$pdf->Ln(4);
如何嵌套html的三種方式
此方法渲染html邊框頂格
$pdf->writeHTML($html, true, false, true, false, '');
原型爲 writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='')
第一個參數爲html格式的字符串;第三個參數設置是否填充背景色,值爲false(不填充)或true(填充);
此方法渲染html會產生一定間距
$pdf->writeHTMLCell(80, '', '', $y, $left_column, 1, 0, 1, true, 'J',  true);
原型:writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=false,  $reseth=true, $align='', $autopadding=true),
參數可對照MultiCell(),分別爲寬度,高 度,x座標,y座標,內容,是否右邊框,與下一個單元格的相對爲位置,是否填充背景色,是否重置高度,文本對齊方式,是否自動… 
此方法渲染html會居中效果,注意將$ishtml設置爲true
$pdf->MultiCell(0, 5, $html, $border=0, $align='C',$fill=false, $ln=1, $x='', $y='',  $reseth=true, $stretch=0,$ishtml=true,$autopadding=true);
設置獲取xy座標
$pdf->setY()/getY()
設置直線,注意第二個參數和第四個參數保持一致時才爲水平直線
$linestyle = array('width' => 0.1, 'cap' => 'butt', 'join' => 'miter', 'dash' => '', 'phase' => 0, 'color' => array(143,195,226));
$pdf->Line(6, 32, 200, 32, $linestyle);
設置左邊距、右邊距
$pdf->SetLeftMargin(0);
$pdf->SetRightMargin(0);
輸出pdf(I爲在瀏覽器上輸出,D爲下載、F爲保存)
$pdf->Output('report_new.pdf', 'I');


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章