3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PDF.jsでネット上のpdfファイルを一瞬にして開くツール

Last updated at Posted at 2019-05-06

はじめに

Mouse Dictionaryをpdfで使うために、PDF.jsを用いるという方法がある。(@kroton様の参考記事)

しかし、私のようなめんどくさがりは、これすらも面倒くさいので以下のようなツールを作った。

  • ワンラインでネット上のpdfをPDF.jsで開く
  • ローカルに落としたpdfをわざわざ削除しなくてもよい

完成物

開発環境

  • Manjaro linux
  • Python 3.7.3
  • Docker 18.09.5-ce

実現方法

  1. Dockerコンテナ内にpdfを落とす。
  2. そのままDockerコンテナ内でPDF.jsが機能するPHPビルトインサーバを立てる。
  3. ローカルのブラウザからDockerコンテナ内のpdfを閲覧する。
  4. ダウンロードしたpdfはDockerコンテナが終了すれば(再起動時や明示的にコンテナを停止させた際)自動的に消える。

また、複数のpdfを同時閲覧することを前提とし、自動で動的にDockerコンテナとローカルのポートフォワーディングをするために、Pythonプログラムにコンテナ立ち上げを仲介させることにした。

課題点

DockerイメージのEntrypointとなっているシェルスクリプトが終了すると、例え-dオプションをつけてrunしてもコンテナはなぜか終了してしまう。
それにより、コンテナ内でPDFのサービングが開始したことをPython側にシンプルに伝える方法がなく、コンテナ内の必要処理が終了する前に、Pythonがブラウザを開いてしまう。

最後に

実装があまりスマートではないので、どしどしアドバイスやPR待ってます。

3
3
0

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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?