LoginSignup
3
0

More than 1 year has passed since last update.

はじめに

複数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

検証環境

  • 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変換で時間短縮したい場合使えるかもしれません。

3
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0