很容易弄清楚如何使用诸如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的答案。
答案 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'])