一开始用的自写html,然后转为pdf,但是这种方式很多css都不支持,不能完全达到效果,然后尝试使用wkhtmltopdf,

发现此方法貌似不能将vue项目的网页保存为pdf,可能是因为有跳转,不过也在此记录一下,目前还在学习如何使用无头浏览器实现此功能.

我的测试环境是win10,首先要安装wkhtmltopdf这个程序,下载地址:

https://wkhtmltopdf.org/downloads.html

php 网页保存为pdf_html

 然后安装之后,配置环境变量

php 网页保存为pdf_html_02

 然后在命令行测试一下

wkhtmltopdf -V

php 网页保存为pdf_html_03

 

这样算是安装好了,接下来是代码

首先安装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";
        }

  试试吧

破罐子互摔