word 转 pdf 的模块?
发布于 5 年前 作者 PunkSea 3330 次浏览 来自 问答

项目根据模板生成 word 文件 ,现在要转成pdf,有可用的模块吗?

4 回复

干嘛要转加个生成pdf的功能呗,npm上一搜一大把

根据模板生成word用的是 docxtemplater 模块 直接 npm install docxtemplater 安装,按照api转换。 生成pdf的话用的是libreoffice,在程序中的话用unoconv命令调用libreoffice转换。 node中也有同名包 直接npm install unoconv (unoconv其实就是用child_process的spawn方法,开启子线程,执行unoconv命令,在流回调函数中存储数据,命令close时回调结果)当然还要更改unoconv的代码 如下替换unoconv中的child。 child = childProcess.spawn(bin, args); 开发环境是mac,用brew安装unoconv(version 0.7)环境 ,brew cask 安装最新版libreoffice不支持,回看unoconv 安装成功的提示 In order to use unoconv, a copy of LibreOffice between versions 3.6.0.1 - 4.3.x must be installed. 在liberoffice 直接找历史版本 暂时下载的是4.2.1.1,环境搭建ok. node index,一切都美好了。

@PunkSea unoconv改完报错:1.png 题主你有报错吗?

child = childProcess.spawn(bin, args); 我把bin路径改成: child = childProcess.spawn(process.platform === “win32” ? “npm.cmd” : “npm”, [‘install’], args); 参考:http://stackoverflow.com/questions/17516772/using-nodejss-spawn-causes-unknown-option-and-error-spawn-enoent-err# 可以运行了,但是转换出来的PDF文件都打不开。。。

回到顶部