在线预览office文件:libreoffice基本使用

时间:2024-02-23 20:05:13
使用的核心是这段命令:
soffice --headless --convert-to pdf --outdir \' + 输出路径 + \' \' + 源文件路径

在node中的使用的话,需要使用子进程来运行命令行,如下所示,这里是封装成了promise的形式:

const process = require(\'child_process\')const outputPath = \'upload/pdf/\'

// office translate
module.exports = function(enterPath) {
    return new Promise((resolve, reject) => {
        process.exec(\'soffice --headless --convert-to pdf --outdir \' + outputPath + \' \' + enterPath, (err, stdout, stderr) => {
            if (err || stderr) return reject(err || stderr)
            resolve(stdout)
        })
    })
}

也可以像这样写:

const util = require(\'util\')
const process = require(\'child_process\')
var exec = util.promisify(process.exec)

// office translate
async function officeToPdf(enterPath, outputPath) {
    const { stdout, stderr } = await exec(
        \'soffice --headless --convert-to pdf --outdir \' + outputPath + \' \' + enterPath
    )
    console.log(\'stdout:\', stdout)
    console.log(\'stderr:\', stderr)
}

 

在node中使用案例:https://github.com/yejunm3/office_transform

libreoffice下载地址:https://www.libreoffice.org/download/download/