日期:2021-08-05 10:26 浏览量:5024
在开发一个养老系统项目中,有老人评估系统,评估结果就要求导出为pdf文件,我们使用的 mpdf这个类库
mpdf类库下载地址:https://github.com/mpdf/mpdf
安装:$ composer require mpdf/mpdf
简单的使用:
$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML('<h1>Hello world!</h1>');
$mpdf->Output();
如果内容里面有中文,那就需要单独配置字体,配置如下:
$defaultConfig = (new \Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
$defaultFontConfig = (new \Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];
$mpdf = new \Mpdf\Mpdf([
'fontDir' => array_merge($fontDirs, [
'./static',
]),
'fontdata' => $fontData + [
'frutiger' => [
'R' => 'simfang.ttf',
'I' => 'simfang.ttf',
]
],
'default_font' => 'frutiger'
]);
$mpdf->WriteHTML('<h1 style="font-family:frutiger;">润雪科技</h1>', \Mpdf\HTMLParserMode::DEFAULT_MODE);
$mpdf->Output();
在将内容导出为pdf的时候内容肯定不会那么简单,如果是有很多的html同时还有很多样式的话,可以单独将引入css样式表,代码如下:
$mpdf = new \Mpdf\Mpdf();
//开始引入样式
$stylesheet = file_get_contents('./static/system/css/bootstrap.min.css');
$mpdf->WriteHTML($stylesheet, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML('<h1 class="h1">润雪科技</h1>', \Mpdf\HTMLParserMode::DEFAULT_MODE);
$mpdf->Output();