nodejs+libreoffice 将word转成pdf

项目场景:

项目场景:项目中遇到一个需求,前端要预览word,不知道怎么做,只能后端转了,我使用的nodejs + libreoffice,先将word转成pdf,发送给前端 然后前端预览pdf就好了


问题描述:

提示:第一次用的 这个例子,虽然能将word装成pdf,但是有水印,找了很久都没有找到去水印的方法,朋友们可以尝试一下,然后分享给我

然后我在网上看到还有使用libreoffice可以转pdf,果断尝试

 


解决方案:

1.安装libreoffice。下载地址: 根据自己的电脑选择就好 我是window 系统 ,所以就记录自己的方法

“LibreOffice 免费给所有人使用。您可以复制 LibreOffice 的副本并安装在任意数量的计算机上,并以任何目的使用 (包括商用、政府、公共管理以及教育用途)。更多详情请见随 LibreOffice 下载而来的许可文本。”这是libreoffice的自述,所以可以放心使用

下载完成之后一直下一步安装就好了。安装完成之后,在终端输入soffice,

如果提示既不是内部命令也不是外部命令,就需要配置环境变量了,我一开始就是没有配置环境变量 被坑了好久。

配置环境变量步骤:此电脑->右击选择属性->高级系统设置->环境变量->在系统变量中找到Path->点击“编辑”,在最后面将本地“libreoffice”的安装路径添加进去

如果不知道自己的libreoffice的安装路径可以右键点击libreoffice快捷方式,点击属性,打开文件所在位置,下图是我的安装路径,到这一层级就好了

配置好了环境变量,重新打开cmd,输入soffice,会打开libreoffice,说明环境配置已经做好了,就可以开始些代码使用它了

可以依赖office-to-pdf

npm install office-to-pdf -S

新建officetoPdf.js

var toPdf = require("office-to-pdf");

var fs = require(fs);

// 转换word为PDF

function wordToPdf(){

let wordFile = ./www/ + "123.docx";

console.log(53,wordFile)

return fs.readFile(wordFile, function(err, result){

console.log(55,result)

if(err){

console.log(err);

}else{

toPdf(result).then(

(pdfBuffer) => {

console.log(60,pdfBuffer)

fs.writeFileSync("./www/test.pdf", pdfBuffer);

console.log(成功生成PDF文件)

// sendFileToServer(./pdf/test.pdf , /sftp/pdf/test.pdf)

}, (err) => {

console.log(66,err);

}

);

}

});

}

wordToPdf();

在cmd执行 node officetoPdf 就可以将word转为pdf了

经验分享 程序员 微信小程序 职场和发展