libreoffice-convert 在 nodejs 中不起作用

libreoffice-convert not working in nodejs

所以,我当然在我的 nodejs 应用程序中使用 libreoffice-convert、运行。 我的代码如下

const file = fs.readFileSync(enterPath);
// Convert it to pdf format with undefined filter (see Libreoffice doc about filter)
libre.convert(file, extend, undefined, (err, done) => {
    if (err) {
      console.log(`Error converting file: ${err}`);
    }
    
    // Here in done you have pdf file which you can save or transfer in another stream
    fs.writeFileSync(outputPath, done);
});

上面的代码 returns 在尝试打开 LibreOffice 时出错。

The application cannot be started. 
The configuration file "C:\Program Files\LibreOffice\program\bootstrap.ini" is corrupt.

这是我bootstrap.ini

的内容
[Bootstrap]
InstallMode=<installmode>
ProductKey=LibreOffice 7.0
UserInstallation=$SYSUSERCONFIG/LibreOffice/4

如果有人能帮助解决这个问题,我将不胜感激。也不确定它是否有帮助,但我在 Windows.

上 运行

libreoffice-convert 中存在一个已知问题,它仍处于 Open 状态:issue。您可以尝试此问题评论

中讨论的解决方法

在 libreoffice-convert/index.js

中进行以下更改
// change

let command = `${results.soffice} -env:UserInstallation=file://${installDir.name} --headless --convert-to ${format}`;

// to

let command = `${results.soffice}  --headless --convert-to ${format}`;

如果有人遇到与我相同的问题,请参考我的解决方法。

  1. 下载并安装 LibreOffice。可以下载here
  1. 在运行npm i libreoffice-convert之后,转到your_project/node_modules/libreoffice-convert/index.js,找到下面的代码。
/* your_project/node_modules/libreoffice-convert/index.js */

let command = `-env:UserInstallation=file://${installDir.name} --headless --convert-to ${format}`;

// change to 

let command = `${installDir.name} --headless --convert-to ${format}`;

  1. 现在试试你的脚本。

这对我有用:

安装:yum install libreoffice-headless

Reference