返回

利用 Puppeteer 生成自动分页 PDF:简单实现文本内容转 PDF

前端

前言

前段时间接到公司一个需求,需要将用户选择的不定数量的文本内容(富文本格式,包含图片),生成自动分页,且每页都有相同页眉、页尾的 PDF。考虑到如果是用后端语言实现排版,需要实现一套基于富文本格式的动态分页的逻辑,比较麻烦。于是想到利用 web 技术来排版,并通过 puppet**…**

步骤一:安装 Puppeteer

首先,我们需要安装 Puppeteer。Puppeteer 是一个 Node.js 库,因此我们需要先安装 Node.js。

npm install -g nodejs

安装好 Node.js 之后,就可以安装 Puppeteer 了。

npm install puppeteer

步骤二:创建项目

接下来,我们需要创建一个新的项目。

mkdir my-project
cd my-project

在项目目录下,创建一个新的 JavaScript 文件。

touch index.js

步骤三:编写代码

现在,我们可以开始编写代码了。首先,我们需要导入 Puppeteer。

const puppeteer = require('puppeteer');

接下来,我们需要创建一个新的浏览器实例。

const browser = await puppeteer.launch();

然后,我们需要创建一个新的页面实例。

const page = await browser.newPage();

现在,我们可以将要转换的 HTML 内容加载到页面中。

await page.setContent(htmlContent);

接下来,我们需要设置页面的格式。

await page.setPaperFormat('A4');

最后,我们可以将页面保存为 PDF 文件。

await page.saveAsPDF('output.pdf');

结语

通过 Puppeteer,我们可以轻松地将文本内容(富文本格式,包含图片)自动分页成 PDF。这种方法非常适合需要将大量文本内容转换为 PDF 格式的场景。

扩展阅读