Libre Office 配置文件 bootstrap.ini 损坏

问题描述 投票:0回答:4

我正在使用 libreoffice-convert 包将 Word 文件转换为 PDF。但是当我尝试转换时出现此错误。我该如何解决?我已经安装了 LibreOffice 7.0.5

控制台日志显示此错误:

'C:\\Program Files\\LibreOffice\\program\\soffice.exe -env:UserInstallation=file://C:\\Users\\thesa\\AppData\\Local\\Temp\\soffice-10416-bQefydwUfs2F --headless --convert-to .pdf --outdir C:\\Users\\thesa\\AppData\\Local\\Temp\\libreofficeConvert_-10416-v46bO7ljGHRe C:\\Users\\thesa\\AppData\\Local\\Temp\\libreofficeConvert_-10416-v46bO7ljGHRe\\source'
libreoffice
4个回答
1
投票

-env:UserInstallation
需要采用 URI 形式。

注意:您还使用

file://
这应该是
file:///
请参阅 文件 URI 方案

-env:UserInstallation=file:///C:/Users/thesa/AppData/Local/Temp/soffice-10416-bQefydwUfs2F
>>> from pathlib import Path

>>> def get_posix(mypath) -> str:
>>>     p = Path(mypath)
>>>     return p.as_posix()

>>> tmp = "C:\\Users\\thesa\\AppData\\Local\\Temp\\soffice-10416-bQefydwUfs2F"

>>> get_posix(tmp)
'C:/Users/thesa/AppData/Local/Temp/soffice-10416-bQefydwUfs2F'

>>> from pathlib import Path

>>> tmp = Path("C:\\Users\\thesa\\AppData\\Local\\Temp\\soffice-10416-bQefydwUfs2F")
>>> tmp.as_uri()
'file:///C:/Users/thesa/AppData/Local/Temp/soffice-10416-bQefydwUfs2F'

0
投票

试试这个,您可能需要管理员权限。

  1. 找到并复制您的原始文件,例如复制到同一目录中的“bootstrap.ini.org”1
  2. 打开文件并将其内容替换为我的文件的副本:
    [Bootstrap]
    InstallMode=<installmode>
    ProductKey=LibreOffice 7.0
    UserInstallation=$SYSUSERCONFIG/LibreOffice/4
    

另一种选择是重新安装或修复安装。

注 1:此副本仅供您需要恢复时使用。


0
投票
//let data = await fs.promises.readFile(path_to_excel_file);
            let data = fs.readFileSync(path_to_excel_file)
            let pdfFile = await libreConvert(data, '.pdf', undefined);
            await fs.promises.writeFile(`${__dirname}/${docName}.pdf`, pdfFile);
            res.download(`${__dirname}/${docName}.pdf`)

它将运行文件。 即使不起作用,也请遵循 以下步骤: 在 installDir 之后添加第 14 行

const installDir = tmp.dirSync({prefix: 'soffice', unsafeCleanup: true, ...tmpOptions});
const posixInstallDir = installDir.name.split(path.sep).join(path.posix.sep);

然后替换命令

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

就是这样..


0
投票

我有同样的问题,只需注释模块报告 py3o 中的代码行 在 .py 文件中


def _convert_single_report_cmd( 自我,结果路径,模型实例,数据,用户安装=无 ): """返回适合在 subprocess.call 中使用的命令列表""" lo_bin = self.ir_actions_report_id.lo_bin_path 如果不是 lo_bin: 引发运行时错误( _( “Libreoffice 运行时不可用。” “请联系您的管理员。” ) ) 命令 = [ 洛宾, “——无头”, “ - 转换成”, self.ir_actions_report_id.py3o_filetype, 结果路径, ] 这一行 # if user_installation: 这一行# cmd.append("-env:UserInstallation=file:%s" % user_installation) 返回cmd

© www.soinside.com 2019 - 2024. All rights reserved.