deck2pdf: HTMLスライドをSlideShareなどにアップロードしたい自分のためのコンバーター¶
初回の開発開始から1ヶ月ぐらいかけてひっそりと作っていたのですが、このたび最低限の普段使いはできるレベルまでは進んだつもりなので、ブログの記事にしました。
PyPI に deck2pdf というパッケージをリリースしました。現時点でのバージョンは0.2.0です。
何をするものか¶
端的に言えば、 Google HTML5 slides や Google I/O 2012 slides などのHTMLフォーマットのスライドを、可能な限りレイアウトを崩さずに1コマンドでPDF変換するものです。
現状ではPySide経由でQtを使う以外は、ほぼすべてPythonで実装されています。
どうして作ったのか¶
自分が簡単なスライドを用意するときは、 Sphinx 拡張の Hieroglyph から生成したスライドを用いています。 ですが、HTMLスライドはSlideShareやSpeakerDeckにはアップロードできません。(SlideShareはpptxやpdf, SpeakerDeckはpdfのみ)
となると、どうにかPDF形式のものを用意する必要があるのですが、先人の知恵を見て回った感じだと概ね次のパターンに分かれていました。
ブラウザでPDF保存する(print用cssを用意するケースあり)
PhantomJSなどで各ページのキャプチャを取得して、convert等でつなげる
これらの方法を整理するのも問題ないのはわかっていたのですが、 半ば 「せっかくだから」 という理由で
Pythonでページをキャプチャして
PythonでPDFを生成する
というのをまとめて動かす
というのに挑戦してみました。
現状どこまで出来るか¶
今回アップロードしたver 0.2.0の時点で、以下のことまではできるようになっています。
Google HTML5 slides もしくは Google I/O 2012 slides のスライドをPNGでキャプチャして
そのままレイアウトをほぼ崩さずにPDF化する
このままだと、テキスト部分をSlideShareが読み取れないのでなんとかできないかを検討している段階です。 それでも、この時点でもPDFとして見苦しくない形式では変換できているので、社内向け社外向け問わず機会を見つけてはスライドを作っていけたらなぁと思っています。
オールスター集結! CodeIQ大忘年会
nonda mini adapter だけが来た