Kaedah untuk menjana fail PDF: Gunakan Node.js untuk menyambung ke pangkalan data MySQL
P粉154798196
2023-08-25 14:23:44
<p>Saya cuba menjana fail PDF menggunakan Node js, Pdfkit dan pdfkit-table menggunakan data yang disimpan dalam pangkalan data Mysql. Saya perlu mencetak rekod daripada pangkalan data ke jadual dalam dokumen PDF. </p>
<p>Kod berikut menjana fail PDF kosong. Tolong bantu saya menyelesaikan masalah mengapa ia tidak menjana fail PDF dengan data. </p>
<p>Ini ialah fail index.js.</p>
<pre class="brush:php;toolbar:false;">var express = require('express');
var penghala = express.Router();
var PDFDocument = memerlukan('pdfkit');
var orm = memerlukan('orm');
var PDFDoc = memerlukan("pdfkit-table");
router.use(orm.express("mysql://root:@localhost:/kirula_fashion", {
define: function (db, models, next) {
models.news = db.define("lejar", {
id: Rentetan,
tarikh: rentetan,
perihalan : Rentetan,
debit: Rentetan,
kredit: String,
});
seterusnya();
}
}));
router.get('/', function(req, res, next) {
var result = req.models.news.find({
}, fungsi(ralat, berita){
if(error) throw error;
res.render('index', { news:news, title: '使用NodeJS生成PDF'
});
});
});
router.get('/pdf', function(req, res, next) {
var id = req.query.id;
const doc = PDFDocument baharu();
const docTable = PDFDoc baharu();
var result = req.models.news.find({id: id}, function(error, newspost){
if(error) throw error;
lain{
if(newspost.length>0){
for(var i=0; i<newspost.length;i++){
tarikh var = siaran berita[0]['tarikh'];
var description = surat khabar[0]['description'];
var debit = surat khabar[0]['debit'];
var credit = surat khabar[0]['kredit'];
jadual var = {
tajuk: "账簿记录",
sari kata: "2020年5月",
tajuk: [
{ "label":"日期", "harta":"tarikh", "lebar":100 },
{ "label":"描述", "harta":"penerangan", "lebar":100 },
{ "label":"借方", "harta":"debit", "lebar":100 },
{ "label":"贷方", "harta":"kredit", "lebar":100 }
],
data:
[
{ "tarikh":tarikh, "penerangan":keterangan, "debit":debit, "kredit":kredit},
{
"penyampai": "fungsi(nilai, i, irow){ nilai pulangan + `(${(1+irow)})`; }"
}
],
};
docTable.table( jadual, {
lebar: 300,
});
}
}
}
var title = "2020年5月账簿";
var nama fail = encodeURIComponent(title) + '.pdf';
res.setHeader('Content-disposition', 'attachment; filename="' + nama fail + '"');
res.setHeader('Content-type', 'application/pdf');
doc.pipe(res);
doc.end();
});
});
module.exports = penghala;</pre></p>
Saya mempunyai masalah yang sama dengan pilihan data, tetapi untuk pilihan baris, pdfkit-table berfungsi dengan baik, mungkin memetakan [{..},{...}] kepada [[..],[.. .]] dan kemudian gunakan pilihan talian