decktape: PDF exporter for HTML presentations
nodejs、npm の最新版をインストールする(ubuntuの場合)
apt で入る nodejs、npm は古いものらしいので、新しいものを入れる。
1.とりあえず古くてもよいのでnpmが必要なためインストール
$ sudo apt install nodejs npm
2.n をインストール
$ sudo npm install -g n
3.n を使って 推奨版(LTS版)にする。
$ sudo n lts
もし、最新版にしたいのであれば、
$ sudo n latest
4.古いほうのnodejs、npmはアンインストールする
$ sudo apt purge nodejs npm
$ sudo apt autoremove
端末を閉じて、一旦終了させる。
Windowsの場合
まずNode.jsをインストール
winget search nodejs
で検索。今回はID名「OpenJS.NodeJS」のをインストール。
winget install "OpenJS.NodeJS"
でOK。
decktape をインストール
$ npm install -g decktape
npm install -g xxxでパッケージをインストールしようとすると、権限絡みのエラー(permission denied)が出る場合
ホームディレクトリにグローバルインストール用のディレクトリを作成
$ mkdir ~/.npm-global
新しいディレクトリパスを使用するようにnpmを構成
$ npm config set prefix '~/.npm-global'
任意のテキストエディタで、~/.profileファイルを開いて次の行を追加
# nmpのグローバルインストール用のディレクトリにパスを通す
PATH="$HOME/.npm-global/bin:$PATH"
更新
$ source ~/.profile
PCを再起動。
再度、
$ npm install -g decktape
でインストール。
$ decktape -h
で確認。
decktape でスライドをPDFに変換。
$ decktape reveal --size 1024×768 入力.html 出力.pdf
reveal
をつけることで、reveal.jsでfragment要素を付けたものが表示される。もし、PDFでもfragment要素を付けたものを表示させないようにするには、decktape reveal --fragments
と--fragments
オプションをつける。
reveal.jsの解像度に一致させることで、同じサイズ感のスライドが作れる。
reveal.jsのデフォルトの解像度は 960x700 。
しかし、現行のビジネス用プロジェクターでは
- XGA:1024×768
- WXGA:1280×800
を採用している機種が多いらしい。
古いプロジェクターの場合、
の場合もあるとか(プロジェクター 解像度 | 知っておきたいプロジェクターの基礎知識 | CASIO)。
なので、reveal.js pandoc 関連の覚書 画面サイズで、reveal.jsの画面サイズをXGA:1024×768にしておいて、decktapeも同じサイズにしておくのが無難なのかもしれない。
私のある環境では、--size 1123x794
でPDFがA4横置きになった。たぶんPC環境によって入れる数値が変わる?
decktape のアップデート
$ npm outdated --global
でインストールされている、更新が必要なnpmパッケージが全て表示される。
もし、リストに表示された、decktapeを含む全てのパッケージをアップロードするなら、
$ npm update --global
最新のバージョンにアップデートされたのかを確認。
$ npm list --depth=0 -g decktape
Geanyにコマンドを登録
Windowsだけかもしれないが、ビルド>ビルドコマンドを設定で、「Markdownコマンド」に設定してもできなかった…。
しかし、同じく、ビルド>ビルドコマンドを設定 で、
「コマンドを実行」のところに
decktape reveal "%e_スライド.html" "%e_スライド.pdf"
を設定すればできた。