COMPOSER_MEMORY_LIMIT = -1 composer require dompdf/dompdf
use Dompdf\Dompdf;
use Dompdf\Options;
class GeneratePactPdf
{
public function __construct ($imageUrls = [])
{
//首先设置一下html使用的字体.避免生成的pdf文件中文乱码(???)
$stype = "<style>
@font-face {
font-family: ziti;
src: url('xxx.ttf');
}
@font-face {
font-family: zt;
src: url('xxx/msyh.ttf');
}
body {
width: 695px;
font-family: zt, serif;
font-size: 9px;
}
p {
font-size: 9px;
}
"
$body = '
<body>
<p>小汪爱学习</p>
<p>小汪别踩坑</p>
<img class="titleImg" src="https://img2.baidu.com/it/u=3908142881,2459234098&fm=253&fmt=auto&app=138&f=JPEG?w=750&h=500" alt=""/>
</body>
'
$dompdf = new Dompdf();
$options = new Options();
//设置使用远程图片填充pdf内容
$options->setIsRemoteEnabled(true);
//合并成html
$html = $style.$body;
//填充html内容
$dompdf->loadHtml($html);
//设置纸张大小
$dompdf->setPaper('A4');
$dompdf->setOptions($options);
$dompdf->render();
//获取pdf内容
$pdfContent = $dompdf->output();
//保存为xxx.pdf文件
file_put_contents("xxx.pdf",$pdfContent);
//或者直接上传至云平台 Storage::disk('oss')->put($fileNamePath, $pdfContent);
}
}
//文字的ttf(一个加粗的一个不加粗的 )下载链接我放在百度网盘了有需要的自取
//链接:https://pan.baidu.com/s/1kfyqFwqRdr8MZXVUJ8946w
//提取码:k1n0
1.中文乱码问题
—引入字体解决
2.中文字体加粗问题
—引入加粗字体,使用css样式font-weight会产生乱码
3.生成的pdf文字长度超出页面的范围
—这个只能够自己手动将过长的文字换行,虽然是根据html生成内容,但不会像html那样自适应