< 返回技术文档列表

Nodejs中怎么利用Kue动态生成PDF文档

发布时间:2021-09-01 00:54:33⊙投诉举报

Nodejs中怎么利用Kue动态生成PDF文档,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

先决条件

您需要安装以下软件:

  • Node.js最新稳定版。

  • Redis的


您可以从官方站点安装Node.js. 

要在Ubuntu 18.04中安装Redis,请使用以下命令。

$ sudo apt-get update 
$ sudo  apt-get  install redis-server

``` 
要在Mac中安装Redis,请阅读以下文章。
Redis入门,聊天应用程序

启动Redis

redis-3.2.8 $ src / redis-server


要在Windows 10上安装Redis,请访问此Redis官方实验室安装指南并按照步骤操作。

关于Kue 
Kue是一个运行在Redis之上的工作队列。我们可以使用队列将任务委派给多个worker,并节省处理时间。使用队列系统完成高计算任务,例如视频渲染,文档生成,繁重的数学计算。

我正在使用Kue演示如何使用该软件以高效的方式设计和扩展系统。

创建节点项目
创建一个新文件夹并使用终端或命令提示符切换到该文件夹。

mkdir pdfgeneration && cd pdfgeneration


使用以下命令创建新的Node项目。


$ npm init --y


让我们安装依赖项。我们需要kue和pdfkit依赖。

$ npm install --save kue pdfkit


真棒。让我们编写我们的应用程序。

我将创建两个命名job.js和worker.js的文件。

在Job.js中,我将编写代码来读取文件或数据库并创建一个Kue作业。

在Worker.js中,我将编写代码来收听Kue主题并在请求到来时生成PDF文档。

为简单起见,这里有一些我将用于生成PDF文档的条目。

invoice.js

模块。exports = { 

内容: [ {

' index ' : 1 ,

' text ' : ' 你好Shahid,你本月收取100美元的服务费。“

},{

' index ' : 2 ,

' text ' : ' 你好杰森,你这个月收取50美元的服务费。“

},{

' 指数' : 3 ,

' text ' : ' 你好Mark,你本月收取76美元的服务费。“

} ]

}


这是我们的Job.js代码。

const kue = require (' kue ' ); 

const invoice = require(' ./invoice ');

const queue = kue 。createQueue();

function startJob () {

让 invoiceData = invoice 。内容;

invoiceData 。forEach(( singleInvoice ) => {

//推送队列中的数据

让 job = 队列。创建(' 发票' , {

title : ` 生成发票$ { singleInvoice 。index } ` ,

模板: singleInvoice 。文字,

})。延迟(5000)。优先级(' 高')。save(( err ) => {

if(! err){

控制台。日志(' 工作加... ' + 工作。 ID);

}

});

});

}

startJob ();


在此代码中,我们正在读取存储有关PDF文档的信息的文件,对于每个条目,我们在队列中创建一个新作业。

这是我们的Worker.js代码。

const kue = require (“ kue ” ); 

const queue = kue 。createQueue();

const pdfKit = require(' pdfkit ');

const fs = require(' fs ');

function startProcess () {

//听队列

//开始处理电子邮件

队列。流程(' invoice ' , ( job , done ) => {

//在每个请求上生成pdf

generatePdfInvoice(作业。数据,完成);

});

}

function generatePdfInvoice ( data , done ) {

让 doc = new pdfKit ;

文档。管(FS 。createWriteStream(` $ { __dirname } /发票/ $ {数据。标题} .PDF `));

文档。fontSize(14)。文本(数据。模板, 100 , 100);

文档。结束();

完成();

}

startProcess();

KUE 。app 。听(4000 );


在此代码中,我们正在听Kue主题即发票,并且在每个请求中,我们正在生成pdf文档。PDF文档的标题应该是唯一的,因此我们使用索引字段来维护唯一的标题约定。
运行应用程序
要运行应用程序,请首先使用以下命令运行job.js.

$ node job.js


您应该在终端中看到类似的输出。

Nodejs中怎么利用Kue动态生成PDF文档


现在使用以下命令运行worker.js .

$ node worker.js


要验证作业是否已添加到队列,请访问localhost:4000以查看队列。

Nodejs中怎么利用Kue动态生成PDF文档

看完上述内容,你们掌握Nodejs中怎么利用Kue动态生成PDF文档的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注血鸟云行业资讯频道,感谢各位的阅读!


/template/Home/Zkeys/PC/Static