使用命令行中的值填充现有的 LibreOffice 文档
Fill an existing LibreOffice document with values from the command line
我 运行 一个 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
注入值。
最好的方法是什么?
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
我 运行 一个 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
注入值。
最好的方法是什么?
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