質問
コマンドライン経由でlibreoffice
を指定して、ユーザー操作なしでPDF世代のCambria
の発生にCalibri
を使用する方法はありますか?
コンテキスト
私はこのコマンドを使用しています:
libreoffice --headless --invisible --convert-to pdf --outdir images/output/ images/Mockups.pptx
またはこれ:
unoconv -f pdf -o images/output/ images/Mockups.pptx
PPTX
実行中ubuntu/trusty64
で起動されたPDF
マシンでvirtualbox
をvagrant
に自動的に変換します。
Vagrantfile:
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
元のpptx
は、ウィンドウを使用している人々によって編集され、Calibri
フォントを使用します。別の設定やフォントを使用するように要求することはできません。
Calibri
フォントはtrusty
ディストリビューションに含まれていないため、PDF
によって行われたlibreoffice
変換はレイアウトを台無しにします。
Cambria
はCalibri
と同等です。
したがって、前述のように、問題は、コマンドラインを介して特定のフォント置換のlibreoffice
を指示する方法です。
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
AlfrescoのLibreOfficeでも同様の問題が発生しました(これもヘッドレスで実行されます)。 Carlito(Calibriと同等)およびCaladea(Cambriaと同等)のChromeOSフォントパッケージをインストールすると、ここからのヒントを使用して修正されました: https://wiki.debian.org/SubstitutingCalibriAndCambriaFonts 。 LO内のマッピングを変更しても、ヘッドレスでもデスクトップでも何も起こりませんでした。パッケージをインストールするだけで解決しました。 (完全を期すために、LOレジストリmodifications.xcuにマッピングのエントリを追加しましたが、どちらのプラットフォームでも何も達成されませんでした-conf.dの下のファイルの編集が優先されるようです)。
インストールされたパッケージ:
注:以下の$はシステムプロンプトです...
Linux:
$ Sudo apt-get install fonts-crosextra-carlito fonts-crosextra-caladea
FreeBSD:(ヒント:名前は時間とともに変化する可能性があるため、最初に検索を実行してください)
$ pkg検索cros
$ sudo pkg install crosextrafonts-caladea-20130214_1 crosextrafonts-carlito-20130920_2
以下を実行する必要がある場合があります。
$ fc-cache -r
確認する:
$ fc-match Calibri
Carlito-Regular.ttf:「Carlito」「Regular」
$ fc-matchカンブリア
Caladea-Regular.ttf:「Caladea」「Regular」
今完璧に動作します。
これらのインストールにより、次のファイルが作成されます。これらのファイルは、目的のフォントの置換を提供します(プラットフォームに応じて)
Linux(Ubuntu 14.x):
/etc/fonts/conf.avail/30-0-google-crosextra-caladea-fontconfig.conf
/etc/fonts/conf.avail/30-0-google-crosextra-carlito-fontconfig.conf
これらは/etc/fonts/conf.dから次のようにリンクされています。
30-0-google-crosextra-caladea-fontconfig.conf-> ../conf.avail/30-0-google-crosextra-caladea-fontconfig.conf
30-0-google-crosextra-carlito-fontconfig.conf-> ../conf.avail/30-0-google-crosextra-carlito-fontconfig.conf
FreeBSD(10.x):
/usr/local/etc/fonts/conf.avail/30-metric-aliases.conf
...リンクされたアラ...
/usr/local/etc/fonts/conf.d/30-metric-aliases.conf@-> /usr/local/etc/fonts/conf.avail/30-metric-aliases.conf