简介
wkhtmltopdf-lambda-pack 是一个基于 AWS Lambda 平台的 npm 包,它可以将 HTML 页面转换成 PDF 文件。它的主要特点是:
- 无需安装 wkhtmltopdf 等外部依赖,可以直接在 AWS Lambda 中使用。
- 可以适应不同的 Lambda 运行环境和 Node.js 版本。
本文将详细介绍 wkhtmltopdf-lambda-pack 的安装和使用方法,并提供一些示例代码帮助读者更好地理解。
安装
在安装之前,需要保证你已经安装了 Node.js 和 npm。
运行以下命令即可完成安装:
npm install wkhtmltopdf-lambda-pack --save
使用
创建一个 index.js 文件,并输入以下代码:
-- -------------------- ---- ------- ----- -- - -------------- ----- - ------ - - ----------------------------------- --------------- - ----- ------- -------- --------- -- - ----- ---- - ----------------------- --------------------------- ----- --------- - ----- ------------- --------------------------------- ----------- -------------- ---- ---- ------------ --
这段代码的作用是将一个简单的 HTML 页面转换成 PDF 文件。
接下来,需要在本地环境下测试代码。可以使用 serverless-offline 进行本地模拟。安装 serverless-offline:
npm install serverless-offline --save-dev
然后,在你的项目根目录创建一个 serverless.yml
文件,并输入以下代码:
-- -------------------- ---- ------- -------- ---------- -------- - ------------------ ---------- ---- -------- ------------- ------- - ----- ----- --- ------- ---
最后,在控制台中执行以下命令运行 Lambda 函数本地模拟:
serverless offline start
在浏览器中打开 http://localhost:3000/pdf
,你应该可以看到 /tmp/test.pdf
文件已经生成。
配置
在 Lambda 运行时,wkhtmltopdf-lambda-pack 会自动检测运行环境和 Node.js 版本,并下载相应版本的 wkhtmltopdf。如果您需要手动配置,可以设置以下环境变量:
WKHTMLTOPDF_ARCH
: wkhtmltopdf 的架构,可选值为“x64”和“arm64”。WKHTMLTOPDF_VERSION
: wkhtmltopdf 的版本号,例如“0.12.6”。
例如,以下代码将设置 wkhtmltopdf 的版本为 0.12.6,并打印您的运行环境:
const { getVersion, run } = require("wkhtmltopdf-lambda-pack"); exports.handler = async (event, context, callback) => { console.log(`Node.js version: ${process.version}`); console.log(`wkhtmltopdf version: ${getVersion()}`); console.log(await run("--version")); callback(null, "Finished"); };
注意:这里打印的process.version
是您的 Lambda 运行时版本,并非本地环境上的版本。
总结
本文介绍了如何使用 wkhtmltopdf-lambda-pack 将 HTML 页面转换成 PDF 文件。我们详细介绍了安装、使用和配置方法,并提供了示例代码帮助读者更好地理解。希望这篇文章对前端开发者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005669781e8991b448e2d0e