🐹
Slack に貼られた PDF の URL をプレビューできるようにしてみた
Slack は今のところ PDF のリンクはプレビューできないようだ
(2024/11/01現在の情報です)
しかし、我はせめて最初の 1 ページだけでも見たい!!
bot に実装してみる
Python で PDF を扱う方法をいろいろ調査してみたところ pypdfium2
がいい感じだった
web に公開されている PDF からテキストを抽出してみるなどいろいろ実験してみたけど、そもそもテキスト情報が存在しなかったりするものが多いという印象だったので、レンダリングした結果を画像としてアップロードするという方法にした
実装詳細
ひとまず
- リンクとして認識されたもの
<link>
の終端が.pdf
なものを - コンテンツとして取得
requests.get
してPdfDocument
オブジェクトにして -
render
でレンダリングしたビットマップイメージを PNG で保存 - そのファイルをアップロード
という形にしてみた
やってみた
これは読めない……つらい……でもしかたない……
これならなんとかイメージはつかめる
ヘタにテキストを抽出するよりいいかも!!
実装はこちら
これは自前の SlackBot のモジュールですが、Google Apps Script や AWS Lambda などで実行するようにしてもいい感じになるかも
実用的にするには
- 複数 URL に対応
- 有意なテキスト情報があればそれも表示する
とかですねおそらく
Enjoy!!
Discussion