thinkphp tcpdf亂碼的解決辦法:1、下載插件TCPDF;2、通過“class Pdf extends appcommoncontrollerBase{…}”方式使用TCPDF;3、將字體改為“$pdf->SetFont(‘cid0cs’, ”, 8)”即可解決亂碼問題。
本教程操作環境:Windows7系統、ThinkPHP6版、Dell G3電腦。
thinkphp tcpdf 亂碼怎么辦?
thinkphp6 生成pdf
下載插件TCPDF
立即學習“PHP免費學習筆記(深入)”;
composer 安裝
composer?require?tecnickcom/tcpdf
官網
https://tcpdf.org/examples/
官網中有許多的例子,可根據自身的需求選擇
使用TCPDF
<?php namespace appadminlogic; use thinkDb; use TCPDF; class Pdf extends appcommoncontrollerBase { public static function conrtact($data) { $sno = $data['sno']; $kid_name = $data['c_name']; $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->SetCreator(PDF_CREATOR); ????????$pdf->SetAuthor('Nicola?Asuni'); ????????$pdf->SetTitle('TCPDF?Example?001'); ????????$pdf->SetSubject('TCPDF?Tutorial'); ????????$pdf->SetKeywords('TCPDF,?PDF,?example,?test,?guide'); //?set?default?header?data $pdf->SetHeaderData(PDF_HEADER_LOGO,?PDF_HEADER_LOGO_WIDTH,?PDF_HEADER_TITLE.'?001',?PDF_HEADER_STRING,?array(0,64,255),?array(0,64,128)); $pdf->setFooterData(array(0,64,0),?array(0,64,128)); //?set?header?and?footer?fonts $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); //?set?margins $pdf->SetMargins(PDF_MARGIN_LEFT,?PDF_MARGIN_TOP,?PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); //?set?auto?page?breaks $pdf->SetAutoPageBreak(TRUE,?PDF_MARGIN_BOTTOM); //?set?image?scale?factor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); //?set?some?language-dependent?strings?(optional) if?(@file_exists(dirname(__FILE__).'/lang/eng.php'))?{ ????require_once(dirname(__FILE__).'/lang/eng.php'); ????$pdf->setLanguageArray($l); } //?--------------------------------------------------------- //?set?default?font?subsetting?mode $pdf->setFontSubsetting(true); //?Set?font //?dejavusans?is?a?UTF-8?Unicode?font,?if?you?only?need?to //?print?standard?ASCII?chars,?you?can?use?core?fonts?like //?helvetica?or?times?to?reduce?file?size. $pdf->SetFont('dejavusans',?'',?14,?'',?true); //?Add?a?page //?This?method?has?several?options,?check?the?source?code?documentation?for?more?information. $pdf->AddPage(); //?set?text?shadow?effect $pdf->setTextShadow(array('enabled'=>true,?'depth_w'=>0.2,?'depth_h'=>0.2,?'color'=>array(196,196,196),?'opacity'=>1,?'blend_mode'=>'Normal')); //?Set?some?content?to?print $html?=?Welcome?to?<a>?<span>$kid_name</span><span>PDF</span>?</a>! <i>This?is?the?first?example?of?TCPDF?library.</i> <p>This?text?is?printed?using?the?<i>writeHTMLCell()</i>?method?but?you?can?also?use:?<i>Multicell(),?writeHTML(),?Write(),?Cell()?and?Text()</i>.</p> <p>Please?check?the?source?code?documentation?and?other?examples?for?further?information.</p> <p>TO?IMPROVE?AND?EXPAND?TCPDF?I?NEED?YOUR?SUPPORT,?PLEASE?<a>MAKE?A?DONATION!</a></p> EOD; ??????//?Print?text?using?writeHTMLCell() ??????$pdf->writeHTMLCell(0,?0,?'',?'',?$html,?0,?1,?0,?true,?'',?true); ??????//?--------------------------------------------------------- ??????//?Close?and?output?PDF?document ??????//?This?method?has?several?options,?check?the?source?code?documentation?for?more?information. ??????$pdf->Output('example_001.pdf',?'F'); ??????return??'example_001.pdf'; ????} }
注意:
-
因為TCPDF使用定界符的方式輸出html等內容,因此上述代碼中的$html一直到EOD必須頂格。
-
中文亂碼的問題,將字體改為$pdf->SetFont(‘cid0cs’, ”, 8)即可。
前端顯示
?<object></object>
推薦學習:《thinkPHP視頻教程》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦