我正在使用 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'
-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'
试试这个,您可能需要管理员权限。
[Bootstrap]
InstallMode=<installmode>
ProductKey=LibreOffice 7.0
UserInstallation=$SYSUSERCONFIG/LibreOffice/4
另一种选择是重新安装或修复安装。
注 1:此副本仅供您需要恢复时使用。
//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}`;
就是这样..
我有同样的问题,只需注释模块报告 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