使用Node.js、EJS和MySQL生成PDF的步骤如下:
npm init
按照提示填写项目信息,然后安装必要的依赖:
npm install express ejs mysql pdfkit --save
这里我们使用Express作为Web框架,EJS作为模板引擎,MySQL作为数据库,PDFKit用于生成PDF。
const express = require('express');
const mysql = require('mysql');
const PDFDocument = require('pdfkit');
const ejs = require('ejs');
const app = express();
// 创建MySQL连接
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
// 连接到MySQL数据库
connection.connect();
// 设置EJS模板引擎
app.set('view engine', 'ejs');
// 定义路由
app.get('/', (req, res) => {
// 查询数据
connection.query('SELECT * FROM your_table', (error, results) => {
if (error) throw error;
// 使用EJS渲染模板
ejs.renderFile('template.ejs', { data: results }, (error, html) => {
if (error) throw error;
// 创建PDF文档
const doc = new PDFDocument();
doc.pipe(res);
// 将HTML转换为PDF
doc.text(html, 50, 50);
// 结束PDF文档
doc.end();
});
});
});
// 启动服务器
app.listen(3000, () => {
console.log('Server started on port 3000');
});
在上面的代码中,我们创建了一个Express应用,连接到MySQL数据库,并定义了一个路由来处理根路径的请求。在路由处理函数中,我们查询数据库并使用EJS渲染模板,然后使用PDFKit将HTML转换为PDF,并将其发送给客户端。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PDF Template</title>
</head>
<body>
<h1>PDF Template</h1>
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<% data.forEach(function(row) { %>
<tr>
<td><%= row.id %></td>
<td><%= row.name %></td>
<td><%= row.email %></td>
</tr>
<% }); %>
</tbody>
</table>
</body>
</html>
在上面的模板中,我们使用EJS的语法来动态生成表格,其中<%= %>用于输出变量的值。
node app.js
然后在浏览器中访问http://localhost:3000,你将看到生成的PDF文件。
这就是使用Node.js、EJS和MySQL生成PDF的基本步骤。根据实际需求,你可以进一步扩展和优化这个应用,例如添加身份验证、生成更复杂的PDF文件等。
领取专属 10元无门槛券
手把手带您无忧上云