Ana*_*rem 15 html pdfkit node.js html-pdf puppeteer
长话短说:
更长的版本:
在 NodeJS 服务器中,我们需要根据请求参数将 HTML 字符串转换为 PDF 或 PNG。我们正在使用 puppeteer 生成部署在谷歌云功能中的 PDF 和 PNG(屏幕截图)。在我本地的 Docker 中运行此应用程序并将内存使用量限制为 100MB,这似乎有效。但是在云函数中,当我们将云函数设置为250MB内存时,它会抛出内存限制异常。作为临时解决方案,我们将云功能升级到 1 GB。
我们希望在没有任何无头浏览器方法的情况下尝试 puppeteer 的任何替代方案。另一个库 PDF-Kit 看起来不错,但它有 canvas api 类型的输入。我们不能直接提供 html。
对此有任何想法或意见
NodeJS 中将 HTML 转换为 PDF 或 PNG 而不使用任何无头浏览器实例的任何建议。
是的,您可以尝试使用jsPDF。我以前从未使用过它。语法很简单。
在幕后,它看起来没有使用无头浏览器库,而且这似乎是 100% 纯 JavaScript 实现。
您可以直接向库提供 HTML 字符串。
但别无选择png。无论如何,对于图像,有很多解决方案可以与jsPDF(例如,HTML 到 PDF 到 PNG)或其他 HTML 到 PNG 直接解决方案相结合。看看这里。
任何人都可以在任何生产环境中使用 puppeteer。我想知道在产品中运行无头浏览器的资源利用率和性能如何。
当你想使用 puppeteer 时,我建议拆分服务:一个简单的 http 服务器,必须只处理与客户端的 HTTP 通信,以及一个单独的 puppeteer 服务。这两种服务都必须是可扩展的,但当然,第二种服务需要更多的资源来运行。为了优化资源,我建议使用puppeter-cluster创建一个 puppeteer 工作集群。您可以更好地处理错误、流程和并发,同时您可以通过使用 Chromium 的单个实例(使用CONCURRENCY_PAGE或CONCURRENCY_CONTEXT 模型)来节省内存