欢迎访问广西陌上网络科技有限责任公司官网 · 专注企业数字化管理软件定制开发 客服热线:黄生 15678982250

THINKPHP导出PDF文件支持中文

更新时间:2024-04-07 浏览:4166 标签:THINKPHP PDF 中文 

进入TP目录命令行:composer require tecnickcom/tcpdf


示例代码

namespace app\zongtai\controller;

 

use TCPDF;

 

class Pdf

{

    public function createPdf()

    {

        // 引入TCPDF库

        require_once('../vendor/tecnickcom/tcpdf/tcpdf.php');

        $pdf = new TCPDF();

        $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

        //$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'GB2312', false);

        $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

        // 设置文档信息        

        $pdf->SetCreator('ThinkPHP6');

        $pdf->SetAuthor('作者');

        $pdf->SetTitle('PDF文档');

        $pdf->SetSubject('PDF文档 Demo');

        $pdf->SetKeywords('PDF, Demo, TCPDF, PHP');

       

        $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_RIGHT, PDF_MARGIN_TOP);

        $pdf->SetHeaderMargin(0);

        $pdf->SetFooterMargin(PDF_MARGIN_BOTTOM);

       

        $pdf->setPrintHeader(false);

        $pdf->setPrintFooter(false);

       

        $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

       

        $pdf->AddPage();

        //$pdf->Image('test.jpg', 10, 10, 150, 100, '', '', '', false, 300, '', false, false, 0, false, false, false);

        //此处已改为支持中文的字体

        $pdf->SetFont('droidsansfallback', '', 12);

        //$pdf->Cell(0,20,'Hello,World',0,1,'C');

       

        $pdf->Ln();

        $pdf->Ln();

        $style = array('border' => 1, 'padding' => '2', 'header_line' => true, 'color' => array(255, 255, 255), 'font' => 'cid0jp', 'font_size' => 10);

        // $pdf->write(0,'头牌');

        // $pdf->write(1,'乌黑的头发');

        $txt3='头像';

        //$txt3=iconv('GBK','utf-8','头像');

        $html='

列1列2
行2
'.$txt3.'头牌
';      

        $pdf->writeHTML($html, true, false, true, false, '');

        // $pdf->Output(root_path().'public\\filename.pdf', 'F');

        // exit;

        $pdf->Output('测试张三.pdf', 'D');

        die; 

    }

}


通过定位setFont可以看到插件的具体方法,在安装目录的fonts下有对应的自带字体

  • courier : Courier

  • courierb : Courier Bold

  • courierbi : Courier Bold Italic

  • courieri : Courier Italic

  • helvetica : Helvetica

  • helveticab : Helvetica Bold

  • helveticabi : Helvetica Bold Italic

  • helveticai : Helvetica Italic

  • symbol : Symbol

  • times : Times New Roman

  • timesb : Times New Roman Bold

  • timesbi : Times New Roman Bold Italic

  • timesi : Times New Roman Italic

  • zapfdingbats : Zapf Dingbats

这些都是英文的,下载中文字体

http://sourceforge.net/projects/hawebs/files/Assistance/PHP/Droid%20Sans%20Fallback%20-%20PHP.zip/download

将它解压放在droidsansfallback.php、droidsansfallback.z以及droidsansfallback.ctg.z这三个文件复制到 TCPDF\fonts 下面

同时修改配置文件tcpdf\config\tcpdf_config.php

define (‘PDF_FONT_NAME_MAIN’, ’helvetica’);

改为: define (‘PDF_FONT_NAME_MAIN’, ’stsongstdlight’);

define (‘PDF_FONT_NAME_DATA’, ’helvetica’);

改为: define (‘PDF_FONT_NAME_DATA’, ’stsongstdlight’);


执行导出测试,正常支持中文

0.087852s