一开始用的自写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"; }
试试吧
标签:网页,10mm,wkhtmltopdf,html,PDF,pdf,php,margin From: https://www.cnblogs.com/zonglonglong/p/18392979