使用命令行中的值填充现有的LibreOffice文档

时间:2019-05-12 15:10:58

标签: bash libreoffice openoffice.org

我运行一个bash脚本,该脚本在结算运行结束时生成PDF。我曾经使用LaTeX做到这一点,但用户要求使用类似MS Office的解决方案。因此,我正在考虑使用LibreOffice文档,并在命令行上使用LibreOffice生成PDF。这样可行。但是我不知道如何在生成PDF之前将需要更改的值(例如地址和帐单信息)注入该文档中。

假设example.odt文档包含以下文本:

Dear $fist_name,

you own us $amount USD.

Regards
xyz

因为从Bash脚本中编辑example.odt真的不容易,所以我正在寻找另一种方法来注入$first_name$amount的值。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

LibreOffice文件是一个zip存档,可以使用

解压缩
unzip old.odt -d example
cd example

文件的内容位于文件content.xml中。可以使用sed或任何其他工具进行更改。之后,必须再次创建.odt文件:

zip -r ../new.odt .

之后,可以使用以下命令创建PDF(路径来自OS X):

/Applications/LibreOffice.app/Contents/MacOS/soffice --headless 
--convert-to pdf:writer_pdf_Export --outdir ~/Desktop/ ~/Desktop/new.odt