TP6 集成 tcpdf 流程及注意事项
安装
composer require tecnickcom/tcpdf
引入
use TCPDF;
中文乱码的问题
$pdf->SetFont(‘stsongstdlight’, ”, 14); // 使用中文字体,不设置这个,中文就会乱码
TCPDF不能保存中文文件名的解决方法
打开tcpdf.php文件,找到output函数,大约在7554行。
1、注释以下代码,大约在7565-7568行:
if ($dest[0] != ‘F’) {
$name = preg_replace(‘/[s]+/’, ‘_’, $name);
$name = preg_replace(‘/[^a-zA-Z0-9_.-]/’, ”, $name);
}
$name = preg_replace(‘/[s]+/’, ‘_’, $name);
$name = preg_replace(‘/[^a-zA-Z0-9_.-]/’, ”, $name);
}
2、搜索该方法代码,替换如下代码
header(‘Content-Disposition: attachment; filename=”‘.basename($name).'”‘);
替换为
header(‘Content-Disposition: attachment; filename=”‘.($name).'”‘);
文档输出
//PDF输出 I:在浏览器中打开,D:下载,F:在服务器生成pdf ,S:只返回pdf的字符串 FD:下载到本地
$pdf->Output(‘print.pdf’, ‘I’);
如果需要保存到服务器上的话
在Output前添加一个函数
ob_clean() (暂未遇到)
//如果需要自定义路径,则添加根目录地址
//服务器存档模式
ob_clean();
$pdf->Output($_SERVER[‘DOCUMENT_ROOT’] .’output.pdf’, ‘F’);
//存档在根目录
$pdf->Output($_SERVER[‘DOCUMENT_ROOT’].’/MyFolder/output.pdf’, ‘F’);
//存档在自定义文件夹中;
浏览器打开
header(‘Content-Type: application/pdf’);
header(‘Content-Transfer-Encoding: binary’);
结尾加上
exit;