搜索
生成PDF文件的方法:使用Node.js连接MySQL数据库
P粉154798196
P粉154798196 2023-08-25 14:23:44
[MySQL讨论组]
<p>我正在尝试使用存储在Mysql数据库中的数据使用Node js、Pdfkit和pdfkit-table生成PDF文件。我需要将数据库中的记录打印到PDF文档中的一个表格中。</p> <p>下面的代码生成一个空的PDF文件。请帮我解决为什么它不生成带有数据的PDF文件的问题。</p> <p>这是index.js文件。</p> <pre class="brush:php;toolbar:false;">var express = require('express'); var router = express.Router(); var PDFDocument = require('pdfkit'); var orm = require('orm'); var PDFDoc = require(&quot;pdfkit-table&quot;); router.use(orm.express(&quot;mysql://root:@localhost:/kirula_fashion&quot;, { define: function (db, models, next) { models.news = db.define(&quot;ledger&quot;, { id : String, date : String, description : String, debit : String, credit : String, }); next(); } })); router.get('/', function(req, res, next) { var result = req.models.news.find({ }, function(error, news){ 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 = new PDFDocument(); const docTable = new PDFDoc(); var result = req.models.news.find({id: id}, function(error, newspost){ if(error) throw error; else{ if(newspost.length&gt;0){ for(var i=0; i&lt;newspost.length;i++){ var date = newspost[0]['date']; var description = newspost[0]['description']; var debit = newspost[0]['debit']; var credit = newspost[0]['credit']; var table = { title: &quot;账簿记录&quot;, subtitle: &quot;2020年5月&quot;, headers: [ { &quot;label&quot;:&quot;日期&quot;, &quot;property&quot;:&quot;date&quot;, &quot;width&quot;:100 }, { &quot;label&quot;:&quot;描述&quot;, &quot;property&quot;:&quot;description&quot;, &quot;width&quot;:100 }, { &quot;label&quot;:&quot;借方&quot;, &quot;property&quot;:&quot;debit&quot;, &quot;width&quot;:100 }, { &quot;label&quot;:&quot;贷方&quot;, &quot;property&quot;:&quot;credit&quot;, &quot;width&quot;:100 } ], datas: [ { &quot;date&quot;:date, &quot;description&quot;:description, &quot;debit&quot;:debit, &quot;credit&quot;:credit}, { &quot;renderer&quot;: &quot;function(value, i, irow){ return value + `(${(1+irow)})`; }&quot; } ], }; docTable.table( table, { width: 300, }); } } } var title = &quot;2020年5月账簿&quot;; var filename = encodeURIComponent(title) + '.pdf'; res.setHeader('Content-disposition', 'attachment; filename=&quot;' + filename + '&quot;'); res.setHeader('Content-type', 'application/pdf'); doc.pipe(res); doc.end(); }); }); module.exports = router;</pre></p>
P粉154798196
P粉154798196

全部回复(1)
P粉924915787

我遇到了与数据选项相同的问题,但是对于行选项,pdfkit-table工作得很好,也许可以将[{..},{...}]映射为[[..],[...]],然后使用行选项

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号