Rit*_*itz 8 javascript pdf mongodb node.js chart.js
我正在创建一个node.js利用风帆框架的应用程序。我想创建 PDF 格式的报告。该报告需要包含一个使用chart.js. 数据从 mongodb 获取并显示在canvas. 如何使用 node.js 创建此图表的 PDF 文件?
安装:
npm install pdfkit
Run Code Online (Sandbox Code Playgroud)
例子:
var PDFDocument = require('pdfkit');
doc = new PDFDocument;
doc.pipe(fs.createWriteStream('output.pdf'));
doc.font('fonts/PalatinoBold.ttf').fontSize(25).text(100, 100);
Run Code Online (Sandbox Code Playgroud)
您可以使用pdf-creator-node包来创建 PDF
以下是在节点应用程序中创建 PDF 的步骤
安装通过以下命令安装pdf creator包
npm i pdf-创建者节点
添加所需的包并读取 HTML 模板
//需要的包
var pdf = require("pdf-creator-node")
var fs = require('fs')// 读取 HTML 模板
var html = fs.readFileSync('template.html', 'utf8')
创建您的 HTML 模板
<!DOCTYPE html>
<html>
<head>
<mate charest="utf-8" />
<title>Hello world!</title>
</head>
<body>
<h1>User List</h1>
<ul>
{{#each users}}
<li>Name: {{this.name}}</li>
<li>Age: {{this.age}}</li>
<br>
{{/each}}
</ul>
</body>
</html> Run Code Online (Sandbox Code Playgroud)
根据您的需要提供格式和方向
"height": "10.5in", // 允许的单位:mm, cm, in, px
"width": "8in", // 允许的单位:mm, cm, in, px或者 -
"format": "Letter", // 允许的单位:A3、A4、A5、Legal、Letter、小报 "orientation": "portrait", // 纵向或横向
var options = { 格式:“A3”,方向:“纵向”,边框:“10mm”};
为输出提供 HTML、用户数据和 pdf 路径
var users = [
{
name:"Shyam",
age:"26"
},
{
name:"Navjot",
age:"26"
},
{
name:"Vitthal",
age:"26"
}
]
var document = {
html: html,
data: {
users: users
},
path: "./output.pdf"
};Run Code Online (Sandbox Code Playgroud)
pdf.create(document, options)
.then(res => {
console.log(res)
})
.catch(error => {
console.error(error)
});Run Code Online (Sandbox Code Playgroud)