LibreOffice无头模式下导出PDF未同步更新关联文件内容的问题求助
LibreOffice无头模式下导出PDF未同步更新关联文件内容的问题求助
我最近碰到一个挺棘手的问题:通过脚本修改ODT文件(先解压、用sed替换XML内容再重新打包)之后,在Writer图形界面里导出PDF完全正常,能看到替换后的新内容。但用命令行无头模式导出时,生成的PDF却还是旧内容,我用的命令是:lowriter --headless --convert-to pdf textfile.odt。
有没有大佬知道怎么让命令行导出也能正常同步更新后的内容?我还整理了完整的复现步骤,方便大家排查:
- 新建一个Calc文件,在A1单元格输入
foo,保存为/tmp/calc.ods - 新建一个Writer文件,插入链接的OLE对象:依次选择「插入 > OLE对象 > OLE对象 > 从文件创建」,勾选「链接到文件」选项,选择刚才保存的
/tmp/calc.ods,最后将Writer文件保存为/tmp/result.odt - 用以下Shell脚本把Calc文件里的
foo替换成bar:
cd /tmp mkdir bla cd bla unzip ../calc.ods # 解压Calc文件以便编辑内容 sed -i 's/foo/bar/g' content.xml # 替换文本内容 zip -r ../calc.ods . # 重新打包Calc文件
- 最后执行无头导出命令:
lowriter --headless --convert-to pdf /tmp/result.odt
奇怪的是,导出的PDF里依然显示旧的foo,而不是修改后的bar,这到底是哪里出问题了?求指点!
备注:内容来源于stack exchange,提问作者jjk




