Open4
SlackがどのようにOfficeファイルのプレビューを実現しているか
ピン留めされたアイテム
結論
Slack の Web ブラウザ版を対象に調べたところ、サーバ側で LibreOffice を用いて Office ファイルを PDF に変換しつつクライアントで PDF.js で描画してるようでした。
調べたいこと
Slack に Office ファイル(Word, Excel, PowerPoint)をアップロードしたときに以下のようにファイルをダウンロードすることなく Slack アプリケーション上でプレビューできるが、これをどうやって実現しているかが知りたい。
前提
- 調査内容は記事執筆時点(2024/11/18)のものです
- Slack の Web ブラウザ版を前提に調査しています
調べていく(サーバ側の変換処理)
excel-preview-test.xlsx
という Excel ファイルをアップロードしてブラウザの developer tools を覗くと excel-preview-test_converted.pdf
という PDF ファイルに変換されているのがわかる
変換後の excel-preview-test_converted.pdf
をダウンロードしてファイルの詳細を見ると、
PDF Producer: LibreOffice 24.8.2.1 (X86_64) / LibreOffice Community
Content creator: Calc
となっており、LibreOffice によって PDF が作成されていることがわかる。[1](Calc というのは LibreOffice の表計算アプリケーション)
Word や PowerPoint の場合もそれぞれ Writer、Impress という LibreOffice の対応するアプリケーションで PDF 作成されていた。
-
これらのメタデータは編集可能なので絶対に信用できるものではないが、わざわざ編集して実在するアプリケーションを記載するメリットないはずなので信じていいと思う ↩︎