返回
利用 Puppeteer 生成自动分页 PDF:简单实现文本内容转 PDF
前端
2023-12-12 07:54:11
前言
前段时间接到公司一个需求,需要将用户选择的不定数量的文本内容(富文本格式,包含图片),生成自动分页,且每页都有相同页眉、页尾的 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 格式的场景。