Dompdf是HTML到PDF的转换器。它本质是(大多数)PHP兼容的 HTML布局和呈现引擎。 样式驱动的渲染器,还支持大多数演示HTML属性。
直接安装的dompdf并不支持中文,本文将介绍如何设置,并提供两种使用方法。
目录
安装
使用composer 在项目根目录打开命令行进行安装。、
安装命令:
composer require dompdf/dompdf
安装效果:
下载语言安装脚本
链接地址
mirrors / dompdf / utils · GitCode
打开网站可看到如下截图,主要使用load_font.php文件。
复制 load_font.php到 dompdf目录中,与lib 和 src 目录同级。
下载中文字体
可自行下载,也可以用我上传的微软雅黑。
https://download.csdn.net/download/json_ligege/19563651
可将字体文件放在public/font中
加载中文字体
项目根目录命令行执行(注意执行语句时文件位置)
php vendor/dompdf/dompdf/load_font.php msyh public/font/msyh.ttf msyh
进行加载
此时 vendor/dompdf/dompdf/lib/fonts 下会出现你的字体文件
模板页面设置字体
在页面的header中设置style 整体的字体;也可以使用行内样式来设置。
<style>
@font-face {
font-family: msyh;
}
body {
font-family: msyh;
}
</style>
使用方式
直接下载
通过浏览器激活下载窗口。
// 获取模板页面 tp框架获取模板方式 返回为html字符串
$html = view('test/form')->getContent();
// 生成pdf
$dompdf = new \Dompdf\Dompdf();
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$name = 'dompdf2.pdf';
$dompdf->stream($name);
效果
保存本地
保存本地是通过dompdf返回文件二进制,使用file_put_contents保存到本地设置路径和文件中。
// 获取模板页面
$html = view('test/form')->getContent();
// 生成pdf
$dompdf = new \Dompdf\Dompdf();
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$name = 'dompdf2.pdf';
$filename = './uploads/' . $name;
$binary = $dompdf->output(array('compres' => 0));
file_put_contents($filename, $binary);
halt($filename);
效果
最终pdf中文显示正常
总结
dompdf使用很简单,就是需要加载中文字体,整体很流畅。希望能给朋友们一点帮助。