Open4

SlackがどのようにOfficeファイルのプレビューを実現しているか

ピン留めされたアイテム
daido1976daido1976

結論

Slack の Web ブラウザ版を対象に調べたところ、サーバ側で LibreOffice を用いて Office ファイルを PDF に変換しつつクライアントで PDF.js で描画してるようでした。

daido1976daido1976

調べたいこと

Slack に Office ファイル(Word, Excel, PowerPoint)をアップロードしたときに以下のようにファイルをダウンロードすることなく Slack アプリケーション上でプレビューできるが、これをどうやって実現しているかが知りたい。

前提

  • 調査内容は記事執筆時点(2024/11/18)のものです
  • Slack の Web ブラウザ版を前提に調査しています
daido1976daido1976

調べていく(サーバ側の変換処理)

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 作成されていた。


脚注
  1. これらのメタデータは編集可能なので絶対に信用できるものではないが、わざわざ編集して実在するアプリケーションを記載するメリットないはずなので信じていいと思う ↩︎