Maison  >  Questions et réponses  >  le corps du texte

Méthode pour générer des fichiers PDF : utilisez Node.js pour vous connecter à la base de données MySQL

<p>J'essaie de générer un fichier PDF à l'aide de Node js, Pdfkit et pdfkit-table en utilisant des données stockées dans une base de données Mysql. J'ai besoin d'imprimer des enregistrements d'une base de données vers un tableau dans un document PDF. </p> <p>Le code suivant génère un fichier PDF vide. S'il vous plaît, aidez-moi à comprendre pourquoi il ne génère pas de fichier PDF avec des données. </p> <p>Il s'agit du fichier index.js.</p> <pre class="brush:php;toolbar:false;">var express = require('express'); var routeur = express.Router(); var PDFDocument = require('pdfkit'); var orm = require('orm'); var PDFDoc = require("pdfkit-table"); router.use(orm.express("mysql://root:@localhost:/kirula_fashion", { définir : fonction (base de données, modèles, suivant) { models.news = db.define("ledger", { identifiant : chaîne, date : Chaîne, description : Chaîne, débit : Chaîne, crédit : Chaîne, }); suivant(); } })); router.get('/', function(req, res, next) { var résultat = req.models.news.find({ }, fonction(erreur, actualité){ if(error) renvoie une erreur ; res.render('index', { news:news, title: '使用NodeJS生成PDF' }); }); }); router.get('/pdf', function(req, res, next) { var id = req.query.id; const doc = nouveau PDFDocument(); const docTable = new PDFDoc(); var result = req.models.news.find({id: id}, function(erreur, newspost){ if(error) renvoie une erreur ; autre{ si(newspost.length>0){ pour(var i=0; i<newspost.length;i++){ var date = newspost[0]['date']; var description = newspost[0]['description']; var débit = newspost[0]['débit']; var crédit = newspost[0]['crédit']; vartable = { titre : "账簿记录", sous-titre : "2020年5月", en-têtes : [ { "étiquette" : "日期", "propriété" : "date", "largeur" ​​: 100 }, { "étiquette" : "描述", "propriété" : "description", "largeur" ​​: 100 }, { "libellé": "借方", "propriété": "débit", "largeur": 100 }, { "libellé":"贷方", "propriété":"crédit", "largeur":100 } ], des données: [ { "date" :date, "description" :description, "débit" :débit, "crédit" :crédit}, { "Renderer": "function(value, i, irow){ valeur de retour + `(${(1+irow)})`; }" } ], } ; docTable.table(table, { largeur : 300, }); } } } var title = "2020年5月账簿"; var nom de fichier = encodeURIComponent (titre) + '.pdf'; res.setHeader('Content-disposition', 'attachment; filename="' + filename + '"'); res.setHeader('Type de contenu', 'application/pdf'); doc.pipe(res); doc.end(); }); }); module.exports = routeur;</pre></p>
P粉154798196P粉154798196396 Il y a quelques jours569

répondre à tous(1)je répondrai

  • P粉924915787

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

    J'ai eu le même problème avec les options de données, mais pour les options de lignes, pdfkit-table a très bien fonctionné, peut-être en mappant [{..},{...}] à [[..],[.. .]] et alors utilisez l'option ligne

    répondre
    0
  • Annulerrépondre