thinkphp tcpdf乱码如何解决

thinkphp tcpdf乱码的解决办法:1、下载插件TCPDF;2、通过“class Pdf extends appcommoncontrollerBase{…}”方式使用TCPDF;3、将字体改为“$pdf->SetFont(‘cid0cs’, ”, 8)”即可解决乱码问题。

thinkphp6 生成pdf

下载插件TCPDF

composer 安装

composer require tecnickcom/tcpdf

官网

立即学习PHP免费学习笔记(深入)”;

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>

以上就是

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享