先付上需求实现的效果图:
$excel = Excel::raw(new QuotationPriceExport($deta), \Maatwebsite\Excel\Excel::DOMPDF);
Qiniu::uploadToTemp($excel, self::QUOTATION_EXPORT_FILE_NAME . date(‘YmdHis’) . ‘.pdf’);
导出时会遇到PDF乱码的问题
这是因为DOM PDF需要字体,但是字体又没有安装导致的
首先先下载字体(宋体 SimSun):
https://ufonts.com/download/simsun.html
下载完字体后,需要下载dom pdf官方提供的字体导入工具文件:
https://github.com/dompdf/utils/blob/master/load_font.php
将他放到项目中,并且指定好autoload.php文件的位置
执行命令:
php load_font.php simsun G:\ufonts.com_simsun.ttf
输出:
Unable to find bold face file.
Unable to find italic face file.
Unable to find bold_italic face file.
Copying G:\ufonts.com_simsun.ttf to E:\www\vendor\dompdf\dompdf/lib/fonts/ufonts.com_simsun.ttf…
Generating Adobe Font Metrics for E:\www\vendor\dompdf\dompdf/lib/fonts/ufonts.com_simsun…
安装完后在 Excel 内指定字体文件为 simsun 即可解决乱码问题
表格边框问题
导出的 Excel 的表格边框有指定的为空白,反而没有指定的地方有边框
这是包的问题,有空看看能不能给修复一下
目前的解决方案是反着来就行
表格长宽指定失效
Excel 内的长宽指定无效,似乎走的是默认用的自动调整的逻辑
这个问题目前还在看
感觉还是 Excel 格式的比较方便,先导出成 Excel,再在 Office 里选择打印成 PDF 格式会很方便,且样式好看
这个格式的导出很慢,耗时是直接导出 Excel 的十倍