thinkphp tcpdf 亂碼怎么辦

thinkphp tcpdf亂碼的解決辦法:1、下載插件TCPDF;2、通過“class Pdf extends appcommoncontrollerBase{…}”方式使用TCPDF;3、將字體改為“$pdf->SetFont(‘cid0cs’, ”, 8)”即可解決亂碼問題。

thinkphp tcpdf 亂碼怎么辦

本教程操作環境: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[&#39;sno&#39;];         $kid_name = $data[&#39;c_name&#39;];         $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, &#39;UTF-8&#39;, false);         $pdf->SetCreator(PDF_CREATOR); ????????$pdf-&gt;SetAuthor('Nicola?Asuni'); ????????$pdf-&gt;SetTitle('TCPDF?Example?001'); ????????$pdf-&gt;SetSubject('TCPDF?Tutorial'); ????????$pdf-&gt;SetKeywords('TCPDF,?PDF,?example,?test,?guide'); //?set?default?header?data $pdf-&gt;SetHeaderData(PDF_HEADER_LOGO,?PDF_HEADER_LOGO_WIDTH,?PDF_HEADER_TITLE.'?001',?PDF_HEADER_STRING,?array(0,64,255),?array(0,64,128)); $pdf-&gt;setFooterData(array(0,64,0),?array(0,64,128)); //?set?header?and?footer?fonts $pdf-&gt;setHeaderFont(Array(PDF_FONT_NAME_MAIN,?'',?PDF_FONT_SIZE_MAIN)); $pdf-&gt;setFooterFont(Array(PDF_FONT_NAME_DATA,?'',?PDF_FONT_SIZE_DATA)); //?set?default?monospaced?font $pdf-&gt;SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); //?set?margins $pdf-&gt;SetMargins(PDF_MARGIN_LEFT,?PDF_MARGIN_TOP,?PDF_MARGIN_RIGHT); $pdf-&gt;SetHeaderMargin(PDF_MARGIN_HEADER); $pdf-&gt;SetFooterMargin(PDF_MARGIN_FOOTER); //?set?auto?page?breaks $pdf-&gt;SetAutoPageBreak(TRUE,?PDF_MARGIN_BOTTOM); //?set?image?scale?factor $pdf-&gt;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-&gt;setLanguageArray($l); } //?--------------------------------------------------------- //?set?default?font?subsetting?mode $pdf-&gt;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-&gt;SetFont('dejavusans',?'',?14,?'',?true); //?Add?a?page //?This?method?has?several?options,?check?the?source?code?documentation?for?more?information. $pdf-&gt;AddPage(); //?set?text?shadow?effect $pdf-&gt;setTextShadow(array('enabled'=&gt;true,?'depth_w'=&gt;0.2,?'depth_h'=&gt;0.2,?'color'=&gt;array(196,196,196),?'opacity'=&gt;1,?'blend_mode'=&gt;'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-&gt;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-&gt;Output('example_001.pdf',?'F'); ??????return??'example_001.pdf'; ????} }

注意:

  • 因為TCPDF使用定界符的方式輸出html等內容,因此上述代碼中的$html一直到EOD必須頂格。

  • 中文亂碼的問題,將字體改為$pdf->SetFont(‘cid0cs’, ”, 8)即可。

前端顯示

?<object></object>

推薦學習:《thinkPHP視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享