在前端开发中,有时候需要将网页内容转换成 PDF 文档,以便用户可以离线阅读或打印。本文将介绍使用 Express.js 和 EJS 渲染 PDF 文档的方法,并提供示例代码。
什么是 Express.js 和 EJS?
Express.js 是一个基于 Node.js 平台的 Web 开发框架,它提供了简单、灵活的 API,使得开发 Web 应用变得更加容易。EJS 则是一种模板引擎,它可以将数据和 HTML 模板结合起来,生成最终的 HTML 页面。
渲染 PDF 文档的方法
要使用 Express.js 和 EJS 渲染 PDF 文档,需要安装一些依赖库。首先,安装 express
、ejs
、html-pdf
和 puppeteer
:
npm install express ejs html-pdf puppeteer --save
接下来,创建一个 Express.js 应用,并设置 EJS 模板引擎:
const express = require('express'); const app = express(); app.set('views', __dirname + '/views'); app.set('view engine', 'ejs');
在 views
目录下创建一个 EJS 模板文件 template.ejs
,用于生成 HTML 页面。这里我们以生成一个简单的表格为例:
-- -------------------- ---- ------- --------- ----- ------ ------ ----- ---------------- ---------- ---------------- ------- ----- - ---------------- --------- ------ ----- - --- -- - ------- --- ----- ----- -------- ---- ----------- ----- - -------- ------- ------ ------- ------------- ------- ------- ---- ------------- ------------ -------------- ----- -------- ------- -- --- ---- - - -- - - ------------- ---- - -- ---- ------- ------------- ------- ------- ------------ ------- ------- -------------- ------- ----- -- - -- -------- -------- ------- -------
在 Express.js 应用中定义一个路由,用于渲染 HTML 页面:
app.get('/pdf', (req, res) => { const users = [ { name: 'Alice', age: 25, email: 'alice@example.com' }, { name: 'Bob', age: 30, email: 'bob@example.com' }, { name: 'Charlie', age: 35, email: 'charlie@example.com' } ]; res.render('template', { users }); });
最后,在路由中使用 html-pdf
和 puppeteer
库生成 PDF 文件并发送给客户端:
-- -------------------- ---- ------- ----- --- - -------------------- ----- --------- - --------------------- --------------- ----- ---- -- - ----- ----- - - - ----- -------- ---- --- ------ ------------------- -- - ----- ------ ---- --- ------ ----------------- -- - ----- ---------- ---- --- ------ --------------------- - -- ---------------------- - ----- -- ----- ----- -- - -- ----- - ------------------- ------------------------------ ------ -------- - ---- - ------ -- -- - ----- ------- - ----- ------------------- ----- ---- - ----- ------------------ ----- ---------------------- ----- --------- - ----- ----------- ----- ---------------- ----------------------- ------------------- -------------------- ----- - --- ---
总结
本文介绍了使用 Express.js 和 EJS 渲染 PDF 文档的方法,并提供了示例代码。通过这种方法,我们可以将网页内容转换成 PDF 文档,以便用户可以离线阅读或打印。希望本文对您有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65795db9d2f5e1655d364816