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

时间:2019-07-03 17:24:05

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

很容易弄清楚如何使用诸如html-pdf之类的库在快速服务器上将html转换为图像/ pdf。但是,数周来我一直在努力寻找如何在AWS Lambda中使用本地工作代码的方法。问题是,我正在使用的库需要phantomjs才能运行,而让phantomjs在AWS lambda中运行非常困难。您可以在这里查看我尝试过的内容:How do you install phantomjs on AWS lambda?

这个问题不一定是关于那个斗争的。这个问题是更高层次的。我正在寻找一些采用HTML并将其转换为PDF或图像的代码。这段代码不必不必使用html-pdf或phantomjs。 我正在寻找将html转换为pdf / image并可以在lambda中工作的任何可行示例。它不需要访问网页。我的字符串变量中包含HTML。

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

1 个答案:

答案 0 :(得分:1)

我已经使用https://github.com/wkhtmltopdf/wkhtmltopdf库解决了完全相同的问题。有几个github项目可用,它们提供了一些其他包装器来在lambda中运行wkhtmltopdf,但我认为使用它们没有太大价值。这就是我所做的:

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'])