LibreOffice(Office 形式)¶
Office 翻訳パイプラインは、次の順序で利用可能な最高のバックエンドを 選択します:
- win32com(Windows + MS Office インストール済み)— 最高の忠実度
- LibreOffice UNO(クロスプラットフォーム)— win32com がない ときのフォールバック
- python-docx / openpyxl / python-pptx(モダン形式のみ)— 上記のいずれも使用できないときのピュア Python フォールバック
LibreOffice は Linux と macOS でのレガシー .doc / .xls / .ppt
の唯一の方法であり、それらのプラットフォームでモダン Office 形式
にも推奨される方法です(ピュア Python バックエンドより優れた忠実度、
特にテーブルと埋め込みオブジェクト用)。
インストール¶
または https://www.libreoffice.org/download/download/ から ダウンロード。
Windows のデスクトップアプリは通常、MS Office インストール済み の win32com を使用します — LibreOffice は MS Office が ないときのフォールバックです。 https://www.libreoffice.org/download/download/ からインストール。
検証¶
macOS で "command not found" が表示される場合、バイナリは
/Applications/LibreOffice.app/Contents/MacOS/soffice にあります。
アプリは一般的なインストールパスを通じて自動検出しますが、必要に
応じて 設定 → 一般 → LibreOffice パス で上書きできます。
何を強化するか¶
LibreOffice がアクティブなバックエンドの場合:
| 機能 | 注 |
|---|---|
モダン Office(.docx、.xlsx、.pptx) |
win32com が使用できないときにフォールバックとして使用 |
レガシー Office(.doc、.xls、.ppt) |
必須 — 純粋な Python はこれらを読めません |
ODF(.odt、.ods、.odp) |
ODF を自動変換がオンのときラウンドトリップ変換に使用 |
| レガシー / ODF → OOXML 自動変換 | 必須 |
バックグラウンドプロセス¶
LibreOffice が初めて必要になると、アプリはヘッドレスモードで
soffice プロセスを生成し、翻訳全体で生かしておきます
(office_lifecycle.py)。アプリ終了時に自動的にシャットダウンし
ます。
注意事項¶
初回起動時間
LibreOffice にヒットする最初の翻訳は、soffice が起動するまで
~5-10 秒待ちます。後続の翻訳は同じプロセスを再利用し、高速です。
JVM クラッシュログ
LibreOffice の Java コンポーネントは、segfault 時に時々
hs_err_pid*.log ファイルを生成します。アプリは、プロジェクト
フォルダを汚染しないよう、それらを一時ディレクトリにルーティング
します。
レガシー / ODF 自動変換
日常的に .doc / .xls / .ppt を翻訳する場合は、設定 →
翻訳 → レガシーを自動変換を有効にします。パイプラインはまず
それらを .docx / .xlsx / .pptx に変換(convert_to_modern_format
経由)、モダンコピーを翻訳、次に変換し戻します。忠実度はレガシー
形式を直接翻訳するよりもはるかに高いです。