本项目是一个基于 Node.js 的 HTML 转 PDF 工具,使用 Express 作为服务端框架,Puppeteer 进行 HTML 到 PDF 的转换,同时支持使用 EJS 模板引擎渲染动态数据。
- 确保你已经安装了 Node.js 和 npm。你可以在命令行中运行以下命令来检查版本:
node -v
npm -v
pnpm i
在项目根目录下,通过以下命令启动服务端:moren 3000端口 可以在server.js里面修改port
node server.js
服务器运行在 http://localhost:3000
http://localhost:3000/convert-to-pdf
http://localhost:3000/convert-to-pdf?id={id}
const id = req.query.id; // 获取 id 参数
const dataArray = [
{ id: 1, name: '示例1' },
{ id: 2, name: '示例2' },
{ id: 3, name: '示例3' }
];
const data = id ? dataArray.find(item => item.id === parseInt(id)) : dataArray;
// 使用 EJS 渲染模板
const html = await ejs.renderFile(path.join(__dirname, 'views', 'template.ejs'), { data });
浏览器会自动下载生成的 PDF 文件。
<% if (Array.isArray(data)) { %>
<% data.forEach(item => { %>
<p>ID: <%= item.id %>, 名称: <%= item.name %></p>
<% }); %>
<% } else { %>
<p>ID: <%= data.id %>, 名称: <%= data.name %></p>
<% } %>
<%= %>:输出经过 HTML 转义后的数据,用于安全地显示用户输入。
<p>名称: <%= data.name %></p>
<% %>:用于编写 JavaScript 逻辑,如循环、条件判断等。
<% if (data.showMessage) { %>
<p><%= data.message %></p>
<% } %>