前言
在前端开发中,我们经常会用到生成 PDF 文件的需求。而实现这个需求的方法有很多,如使用 jsPDF 等 JavaScript 库,或者使用第三方服务进行转换。不过这些方法在实际使用中都存在一些问题,如兼容性、生成效果等。
下面介绍的 paper-mill 是一个基于 Puppeteer 和 Handlebars 的 Node.js 包,在生成 PDF 文件方面有着更好的效果。它不仅可以生成 PDF 文件,还可以生成图片、HTML 文件等。并且,由于是基于 Node.js 实现的,也比较容易进行批量处理。
安装
在使用 paper-mill 之前,我们需要先安装它。可以通过 npm 进行安装。
npm install paper-mill
使用
生成 PDF 文件
需要使用 paper-mill 生成 PDF 文件时,我们可以按照以下步骤进行:
创建一个 PDF generator 对象
-- -------------------- ---- ------- ----- -------------- -------------- - ---------------------- ----- ------------ - --- -------------- --------- ----- -- --------- ---------------- ----- -- ----------- ------- ----------------- -- --- ---- ------- - -- --- ---- ---- -------- ----- -------- ------- -------- ------ -------- -- ---
打开一个网页
await pdfGenerator.goto("https://www.baidu.com");
生成 PDF 文件
const pdfBuffer = await pdfGenerator.toPdfBuffer();
在使用 paper-mill 生成 PDF 文件时,我们还可以对其进行一些配置,如设置页眉页脚、添加水印等。具体内容可以参考 paper-mill 的文档。
生成图片
paper-mill 除了可以生成 PDF 文件,还可以生成图片。我们可以按照以下步骤进行:
创建一个 Image generator 对象
const {ImageGenerator} = require("paper-mill"); const imageGenerator = new ImageGenerator({ headless: true, // 是否显示浏览器界面 format: "png", // 图片格式 width: "800", // 图片宽度 height: "600", // 图片高度 });
打开一个网页
await imageGenerator.goto("https://www.baidu.com");
生成图片
const imageBuffer = await imageGenerator.toImageBuffer();
在使用 paper-mill 生成图片时,我们也可以对其进行一些配置,如设置截图区域等。具体内容可以参考 paper-mill 的文档。
生成 HTML 文件
paper-mill 还可以将网页保存为 HTML 文件。我们可以按照以下步骤进行:
创建一个 HTML generator 对象
const {HtmlGenerator} = require("paper-mill"); const htmlGenerator = new HtmlGenerator();
打开一个网页
await htmlGenerator.goto("https://www.baidu.com");
保存 HTML 文件
const html = await htmlGenerator.toHtmlString();
在使用 paper-mill 保存网页为 HTML 文件时,我们还可以对其进行一些配置,如是否将整个页面保存为一个文件等。具体内容可以参考 paper-mill 的文档。
示例代码
下面是一个简单的示例代码,它将百度首页生成为 PDF 文件,并保存在当前目录下。
-- -------------------- ---- ------- ----- -------------- -------------- - ---------------------- ----- ------------ - --- -------------- --------- ----- ---------------- ----- ------- ----------------- ------- - ---- -------- ----- -------- ------- -------- ------ -------- -- --- ------ -- -- - ----- ------------------------------------------- ----- --------- - ----- --------------------------- ---------------------------------------- ----------- -----
总结
通过本文的介绍,我们了解了如何使用 paper-mill 生成 PDF 文件、图片和 HTML 文件,并学习了一些基本的配置。在实际使用中,我们可以根据自己的需要对其进行更多的配置,以生成更符合我们需求的文件。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056d0881e8991b448e6cb3