使用Node.js、EJS和MySQL生成PDF的步骤如下:
npm init
npm install express ejs mysql pdfkit
const express = require('express');
const ejs = require('ejs');
const mysql = require('mysql');
const PDFDocument = require('pdfkit');
const app = express();
app.set('view engine', 'ejs');
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
connection.connect();
app.get('/', (req, res) => {
connection.query('SELECT * FROM your_table', (error, results) => {
if (error) throw error;
res.render('index', { data: results });
});
});
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PDF Generation</title>
</head>
<body>
<h1>PDF Generation</h1>
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
<% data.forEach(function(row) { %>
<tr>
<td><%= row.id %></td>
<td><%= row.name %></td>
<td><%= row.email %></td>
</tr>
<% }); %>
</table>
</body>
</html>
app.get('/generate-pdf', (req, res) => {
connection.query('SELECT * FROM your_table', (error, results) => {
if (error) throw error;
const doc = new PDFDocument();
doc.pipe(res);
doc.fontSize(20).text('PDF Generation', { align: 'center' });
doc.moveDown();
results.forEach((row) => {
doc.fontSize(12).text(`ID: ${row.id}`);
doc.fontSize(12).text(`Name: ${row.name}`);
doc.fontSize(12).text(`Email: ${row.email}`);
doc.moveDown();
});
doc.end();
});
});
http://localhost:3000/generate-pdf
,将会生成一个包含查询结果的PDF文件。以上是使用Node.js、EJS和MySQL生成PDF的基本步骤。你可以根据实际需求进行修改和扩展,例如添加身份验证、样式调整等。另外,腾讯云提供了一系列与Node.js相关的云产品,例如云服务器、云数据库MySQL版等,你可以根据具体需求选择相应的产品。更多关于腾讯云的信息,请访问腾讯云官方网站:https://cloud.tencent.com/。
领取专属 10元无门槛券
手把手带您无忧上云