问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

使用puppeteer实现将htmll转成pdf

提问网友 发布时间:1天前
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:1天前
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(抖音搜索懂视),直接咨询即可。

Top