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
这些都是英文的,下载中文字体
将它解压放在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’);
执行导出测试,正常支持中文