nodejs代码将word转成图片

最近遇到个需求,客户要将word文档上传到服务器并显示出来,保持格式不变。

思路:先将word转pdf,然后再转成图片显示

为啥不直接将word转成html或者直接转成图片呢,因为Word转html会丢失样式,不直接转成图片是因为没找到合适点插件。。。(找到的老铁可以留言告诉我一下)

系统:centos7

1、安装 libreoffice.x86_64,这个是免费的办公套件,官网:主页 | LibreOffice 简体中文官方网站 - 自由免费的办公套件

yum install libreoffice.x86_64

2、安装word转pdf插件:office-to-pdf

cnpm install office-to-pdf

3、写代码转pdf

var toPdf = require("office-to-pdf");
var fs = require('fs');
// 转换word为PDF
function wordToPdf(){
  let wordFile = __dirname + "/test.docx";
	return fs.readFile(wordFile, function(err, result){
		if(err){
			console.log(err);
		}else{
			toPdf(result).then(
			  (pdfBuffer) => {
          fs.writeFileSync("./test.pdf", pdfBuffer);
          console.log('成功生成PDF文件')
         
			  }, (err) => {
				  console.log(err);
			  }
			);
		}
	});
}
wordToPdf()

以上如果能成功运行并生成了pdf文件,则进行下一步,如果pdf中文变成方格或者乱码,试试将windows的字体文件导入centos里

4、安装pdf转图片的组件

yum install  ImageMagick ghostscript poppler poppler-utils

5、安装node的pdf-image插件,具体使用参考:https://www.npmjs.com/package/pdf-image

cnpm install pdf-image

6、写代码将pdf转成图片

var PDFImage = require("pdf-image").PDFImage;
 
var pdfImage = new PDFImage("/www/test/test.pdf");
pdfImage.convertFile().then(function (imagePaths) {
  // [ /tmp/slide-0.png, /tmp/slide-1.png ]
  console.log(imagePaths)
},err=>{
	console.log(err)
});

7、结束。imagePaths即得到的所有图片,然后就可以为所欲为了

8、看到这里了,点个赞呗,坑都是我一点点填的,很辛苦的呢~

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灿宝宝lo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值