一开始用的自写html,然后转为pdf,但是这种方式很多css都不支持,不能完全达到效果,然后尝试使用wkhtmltopdf,
发现此方法貌似不能将vue项目的网页保存为pdf,可能是因为有跳转,不过也在此记录一下,目前还在学习如何使用无头浏览器实现此功能.
我的测试环境是win10,首先要安装wkhtmltopdf这个程序,下载地址:
https://wkhtmltopdf.org/downloads.html
然后安装之后,配置环境变量
然后在命令行测试一下
wkhtmltopdf -V
这样算是安装好了,接下来是代码
首先安装php扩展
composer require mikehaertl/phpwkhtmltopdf
我用的tp6框架做的测试,代码写在自定义命令行中:
$pdf = new Pdf('http://oa.admin.sosyun.com/home/login/index.html');
// 设置PDF文件的输出路径
$pdf->setOptions([
'page-size' => 'A4',
'margin-top' => '10mm',
'margin-right' => '10mm',
'margin-bottom' => '10mm',
'margin-left' => '10mm',
]);
// 生成PDF并保存
if (!$pdf->saveAs(public_path().'output.pdf')) {
echo "PDF生成失败: " . $pdf->getError();
} else {
echo "PDF生成成功: output.pdf";
}
试试吧
破罐子互摔