Markdown to PDF が簡単にできるらしい md-to-pdf を試した
確かに楽だ。コマンド一発で hoge.md を hoge.pdf にできる。日本語もバッチリ。以前紹介した Prince よりもラクチン。
前提
- Windows 10
インストール
npm install で一発。ただ依存ライブラリ(chromium)が 100MB 超なので貧弱回線だと辛いかも。
$ npm install -g md-to-pdf
使い方
Markdown 置いてるディレクトリに移動して md-to-pdf
を実行するだけ。
今回は readme.md を置いたディレクトリで試す。
こんな感じで生成された。
$ md-to-pdf √ generating PDF from readme.md $ dir /b ... readme.md readme.pdf
PDF の出来
OK:
- 日本語の記述(文字化けとかしてないこと)
- 画像
- 外部リンク
- コードハイライト
- .py は文字列リテラルとキーワードが最低限
- .bat はハイライトされず
NG
- ローカルファイルを指す相対リンク
http://localhost:XXXXX/(Filename).(Ext)
← こんなリンクになった- ポート番号はたぶん空いてるのが使われる?
所感
自宅で文章を印刷したい場合に使えそう。
プリンタ持ってない勢の私はコンビニ利用なのだが、コンビニ機は Markdown に対応してない(PDF や Word のみ)。でも md-to-pdf を使えば Markdown から一発で PDF つくれる。
このツールにありがちな「日本語が文字化けして話にならない」もなさそうだし。
※ちなみに以前は結構苦労した → テキストファイルをコンビニで印刷するために markdown to pdf する - stamemo
トラブルシュート
Q: なんかファイアウォールの許可ダイアログが出たんだけど?
Ans: どう対処したか覚えてないけど、もしブロックされてたら解除したら良いかも。
この辺うろ覚え。たぶんダイアログをそのまま閉じたら「node.exe は全部ブロック!」的な設定になっちゃう。それで md-to-pdf も実行が終わらなくなる可能性がある。
もしそうなら以下対応を。
- 1: firewall.cpl を実行する
- 2: 詳細設定リンクから「セキュリティが強化された Windows Defender ファイアウォール」を開く
- 3: 受信の規則から「Node.js: Server-side JavaScript」の設定を探す
- 4: 3 がブロックになってたら無効にしておく
- 私の場合 TCP と UDP で計二項目あった
Q: 生成時間に結構時間かかるくない?
Ans: かかるかも。
node.js はただでさえ遅いし、なんか通信も走らせてるみたいなので。
今回の例、3000 文字、10 リンク、3 画像くらいの readme.md ファイル一つだが 10 秒はかかってる。
Q: 細かいレイアウトや整形はできない?
Ans: できそうだが試してない。
詳しくは以下を。