Puppeteer是一个专为Node.js设计的库,它通过DevTools协议提供了一种高级的方式来控制Chrome或Chromium浏览器。这个工具可以模拟浏览器界面,就像使用phantomjs那样,但功能更为强大。
最初,尝试使用html2pdf和jsPdf将网页转换成PDF,但这种方法存在局限,生成的PDF不支持编辑,且可能会出现文字被分割的问题,不适合需要高度互动性的PDF格式。
由于前端技术限制,解决方案转向后端。选择PhantomJS尝试,但其对ES6语法的支持不足,导致在生成PDF时出现错误。最终,Puppeteer成为了最佳选择,结合koa2和koa2-router实现了HTML到PDF的转换。
在main.js和2pdf.js中编写了核心代码,同时考虑到跨域问题,引入了koa2-cors进行处理。启动服务后,通过axios发送接口请求,本地测试无误后部署到服务器。然而,部署后首页功能正常,但在运行2pdf时遇到错误。
具体报错是关于libatk-bridge-2.0.so.0等共享库缺失,解决方法是通过yum安装相应的软件包,如atk、at-spi2-atk、libxkbcommon-x11-devel、libXcomposite和gtk3等。一篇博客文章详细记录了这些错误和相应的解决方案,对于CentOS 7环境下Puppeteer的常见问题提供了实用的指引。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。