Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何同时将文件转换为PDF?_Node.js_Libreoffice_Pdf Conversion - Fatal编程技术网

Node.js 如何同时将文件转换为PDF?

Node.js 如何同时将文件转换为PDF?,node.js,libreoffice,pdf-conversion,Node.js,Libreoffice,Pdf Conversion,我有一个node.jsweb应用程序,我希望能够将许多文档(同时)转换为PDF。此时,我将libreoffice与队列一起使用(队列的目的是避免文件的无限转换-如果libreoffice无法在特定时间段内转换文件,则我将终止该进程)。问题是,如果我有两个用户上传文件,而他们都上传大文件,那么第二个用户必须等待第一个用户完成 有没有办法同时转换文件 我愿意用另一个PDF转换器替换libreoffice 先谢谢你 同时进行多个转换的一种方法是启动多个正在进行转换的进程。然后,每当向队列中添加某个内容

我有一个
node.js
web应用程序,我希望能够将许多文档(同时)转换为
PDF
。此时,我将
libreoffice
与队列一起使用(队列的目的是避免文件的无限转换-如果
libreoffice
无法在特定时间段内转换文件,则我将终止该进程)。问题是,如果我有两个用户上传文件,而他们都上传大文件,那么第二个用户必须等待第一个用户完成

有没有办法同时转换文件

我愿意用另一个PDF转换器替换
libreoffice


先谢谢你

同时进行多个转换的一种方法是启动多个正在进行转换的进程。然后,每当向队列中添加某个内容时,就会将其传递给下一个处理转换的可用外部进程。由于文件转换可能是CPU和磁盘I/O的混合,因此您可以尝试使用要维护的最佳转换进程数


有许多方法可以管理队列。如果您的node.js应用程序正在维护队列,那么它将管理将项目从队列传递到外部进程的过程,并跟踪哪些外部进程是空闲的,并且可以进行新作业。如果队列位于所有外部进程都可以读取的数据库或文件系统中,然后外部进程自己可以观察队列。

我认为问题出在
libreoffice
上,因为如果我打开两个终端,并在每个终端上运行一个文件转换命令,那么第二个终端将等待第一个终端完成转换,执行一个文件转换,我使用
libreoffice命令--headless--使用
node.js childProcess spawn
@roroinpho22将文件转换为pdf路径,然后您需要一个不同的转换器。@roroinpho21-建议您可以使用不同的配置文件启动LibreOffice,然后它将不会连接到当前运行的实例,您可以一次运行多个实例。另外,这里还有另一种方法:。谢谢,我将分析这些可能性。pandoc pandoc-o output.pdf-f docx input.docxI也必须转换
.xlsx
文档。