欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

nodejs代码将word转成图片

时间:2023-05-17

最近遇到个需求,客户要将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为PDFfunction 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、看到这里了,点个赞呗,坑都是我一点点填的,很辛苦的呢~

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。