はじめに
複数Office文書を同時にPDF変換してみました。
※ [LibreOfficeのsofficeコマンドでOffice文書をPDF変換してみた]も合わせてご参照ください。
やりたいこと
複数Office文書のPDF変換にかかる時間を短縮したい。
解決方法
Office文書別、異なるユーザプロファイルを指定しsofficeコマンドをバックグラウンド実行する。
前提知識: LibreOfficeのユーザプロファイル
- ユーザーに関連するすべてのデータを格納するフォルダ
- 拡張機能やカスタム辞書、テンプレートなど
- LibreOfficeをアンインストールやアップデートしても削除されない
- カスタマイズした内容は保存される
- デフォルトの格納場所
- Windows:
%APPDATA%\libreoffice\4\user
- Linux:
/home/<ユーザー名>/.config/libreoffice/4/user
- macOS:
~/Library/Application Support/LibreOffice/4/user
- Windows:
検証環境
- Ubuntu 20.04 LTS
検証シナリオ
同時に三つのExcelファイルをPDF変換してみます。
- sofficeコマンド実行方法
- 異なるユーザプロファイルパスを指定し、バックグラウンド実行
元のユーザプロファイルをコピーし、新しいユーザプロファイルを三つ作成
mkdir /tmp/user1
cp -r $HOME/.config/libreoffice/4/user /tmp/user1/
mkdir /tmp/user2
cp -r $HOME/.config/libreoffice/4/user /tmp/user2/
mkdir /tmp/user3
cp -r $HOME/.config/libreoffice/4/user /tmp/user3/
sofficeコマンドを、バックグラウンドで並列実行
soffice -env:UserInstallation=file:///tmp/user1 --headless --convert-to pdf test1.xlsx --outdir ./out &
soffice -env:UserInstallation=file:///tmp/user2 --headless --convert-to pdf test2.xlsx --outdir ./out &
soffice -env:UserInstallation=file:///tmp/user3 --headless --convert-to pdf test3.xlsx --outdir ./out &
処理時間の比較
- Excelファイルを一つのみ変換(サイズは3MB)
- 6秒
- Excelファイルを三つ順次変換(サイズはそれぞれ3MB)
- 18秒
- Excelファイルを三つ並列変換(サイズはそれぞれ3MB)
- 6秒
同時実行により処理時間が短縮できました。
おわりに
複数Office文書を同時にPDF変換してみました。
大量PDF変換で時間短縮したい場合使えるかもしれません。