html - 如何在 AWS Lambda 中将 HTML 转换为 PDF 或图像

标签 html node.js amazon-web-services aws-lambda

很容易弄清楚如何使用 html-pdf 等库在 Express 服务器上将 html 转换为图像/pdf。但是,我几周来一直在努力弄清楚如何让我的本地工作代码在 AWS Lambda 中工作。问题是,我使用的库需要 phantomjs 才能运行,并且很难让 phantomjs 在 AWS lambda 中运行。您可以在这里看到我尝试过的内容:How do you install phantomjs on AWS lambda?

这个问题不一定与那场斗争有关。这个问题层次比较高。我正在寻找一些采用 HTML 并将其转换为 PDF 或图像的代码。此代码不必必须使用 html-pdf 或 phantomjs。 我正在寻找任何将 html 转换为 pdf/图像并在 lambda 中工作的工作示例。它不必访问网页。我将 HTML 保存在字符串变量中。

我正在寻找使用nodejs的答案。

最佳答案

我已经使用 https://github.com/wkhtmltopdf/wkhtmltopdf 解决了完全相同的问题图书馆。有几个可用的 github 项目提供了一些额外的包装器来在 lambda 内运行 wkhtmltopdf ,但我认为使用这些项目没有太大值(value)。这就是我所做的:

1) 使用Amazon linux启动docker容器,Centos也可以

2) 自己编译wkhtmltopdf或者使用yum安装

3) 停止容器并复制 wkhtmltopdf 二进制文件

4) 创建具有以下结构的 zip 存档

wkhtmltopdf.zip
└ bin/wkhtmltopdf

5) 创建 lambda layer并上传之前创建的存档

6) wkhtmltopdf 将在 lambda $PATH 中可用

运行示例:

我使用的是 python,但在 nodejs 中不会有太大不同,因为我们只是执行命令

subprocess.run(['wkhtmltopdf', 'home.html', '/tmp/html.pdf'])

关于html - 如何在 AWS Lambda 中将 HTML 转换为 PDF 或图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56875249/

相关文章:

javascript - Angular 2 : Disable input field without removing from formgroup?

javascript - 不使用 JavaScript/jQuery 选中/取消选中复选框

html - 将标题中的背景图像比例级别匹配到背景大小 :cover

design-patterns - 将公共(public)变量传递到 Node.js 中的单独模块的最佳方法是什么?

java - 如何使用 java API 为 S3 中的对象指定 ACL?

jQuery取消选中名称属性的复选框

javascript - 问题设置回调结果等于对象属性(node-tesseract)

javascript - 等待逻辑返回问题的异步

amazon-web-services - 健康检查失败,这些代码 : [502]

amazon-web-services - 如何从 CF 中的另一个模板检索 secret 管理员名称?