剛開始拿到這個需求是很燒腦的,因為我們要實現的是文件的預覽,當碰到文件時word的時候,就很麻煩了,找了好多案例也沒着急合適的,后面再一個不經意間,看到了libreoffice,它是再linux系統下使用的,確定我們的系統安裝了libreoffice,並且做好了配置之后,我們就可以用node實現word轉pdf了。
在做node轉pdf時,我們需要調用系統的環境,所以需要引入:
const util = require('util'); //用來提供常用函數的集合 var exec = util.promisify(require('child_process').exec); // util.promisify把原來的異步回調方法改成返回 Promise 實例的方法, child_process 模塊提供了衍生子進程的能力 創建子shell,可以直接執行shell管道命令,有回調
然后通過調用系統環境,來實現word轉pdf
async function wordToPdf(wordPath,pdfPath) { const {stdout,stderr} =await exec('libreoffice6.4 --headless --convert-to pdf --outdir '+pdfPath+' '+wordPath); console.log('stdout:', stdout); console.log('stderr:', stderr); }
通過上面的方法就可以實現word轉pdf。