pptx 到 pdf 转换中的 LibreOffice 命令行字体替换

Xav*_*ero 5 command-line fonts pdf libreoffice

有什么方法可以libreoffice通过命令行指定 toCambria用于CalibriPDF 生成中的出现,而无需任何用户交互?

语境

我正在使用这个命令:

libreoffice --headless --invisible --convert-to pdf --outdir images/output/ images/Mockups.pptx
Run Code Online (Sandbox Code Playgroud)

或者这个:

unoconv -f pdf -o images/output/ images/Mockups.pptx
Run Code Online (Sandbox Code Playgroud)

自动转换PPTXPDFvirtualbox与推出的机器vagrant上运行ubuntu/trusty64

流浪文件:

config.vm.box = "ubuntu/trusty64"
[...]
config.vm.provision "shell", inline: <<-SHELL
    sudo apt-get update
    sudo apt-get install -y unoconv imagemagick default-jdk ant docbook-xsl fop libxml2-utils xsltproc php5-cli
SHELL
Run Code Online (Sandbox Code Playgroud)

原件pptx由人们使用 Windows 编辑并使用Calibri字体。我不能要求他们使用不同的设置或字体。

由于Calibri字体不在trusty分布中,因此PDFlibreoffice布局完成的转换混乱。

我读过Cambria是公制等效于Calibri.

因此,如上所述,问题是如何libreoffice通过命令行指示某种字体替换。

krl*_*mlr 2

文件pptx格式只是一个具有不同扩展名的 zip 文件,您可以尝试将其解压缩并进行文本替换:

unzip -d tmp Mockups.pptx
find tmp -type f | xargs sed -i 's/Calibri/Cambria/g'
( cd tmp; zip -r ../Mockups2.pptx . )
rm -Rf tmp
Run Code Online (Sandbox Code Playgroud)