Rumah  >  Soal Jawab  >  teks badan

Kaedah untuk menjana fail PDF: Gunakan Node.js untuk menyambung ke pangkalan data MySQL

<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>
P粉154798196P粉154798196396 hari yang lalu567

membalas semua(1)saya akan balas

  • P粉924915787

    P粉9249157872023-08-26 00:56:45

    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

    balas
    0
  • Batalbalas