PDF形式で資料を作る機会があり、何か楽に作成できないか探してたところ、markdown-pdfを見つけました。markdown-pdfは、markdownファイルからPDFファイルに変換してくる便利なプラグインです。
今回はmarkdown-pdfを利用して、PDFのスタイルをカスタマイズしたり、gulpタスクで一括変換できるものを作ってみましたのでご紹介します。
目次
デモ&サンプル
markdownファイルを変換した結果を公開していますので、まずは以下をご覧ください。
インストールの方法
インストールは以下の手順で行います。まずは事前にnode.jsを用意してください。次に以下のようにgithubのプロジェクトをclone
し、npm
インストールで依存パッケージをインストールします。
gitからは、次のようなコマンドでダウンロードとインストールができます。
bash1 2 3
| $ git clone https://github.com/tea3/node-markdown2pdf.git $ cd node-markdown2pdf $ npm install
|
使い方
markdownファイルをPDFファイルに一括変換する手順は以下のようになります。
./file/markdown/
にmarkdownファイルを入れる gulp
タスクを実行 - PDFファイルが作成されます。
./file/pdf/
をご確認ください
gulpタスクは以下となります。
カスタマイズ
生成するPDFファイルのカスタマイズは、以下から行います。
スタイルのカスタマイズ
PDFのスタイルは、./src/css/style.stylからカスタマイズすることができます。
例えば、フォントやカラーのカスタマイズは./src/css/variables.stylで可能となっており、外部のフォントを使用したい場合は、@import
や@font-face
すれば使えるようになっています。
./src/css/variable.styl1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
@import url("https://fonts.googleapis.com/earlyaccess/notosansjapanese.css");
font-sans = "Noto Sans Japanese" , "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3" ,"Yu Gothic", YuGothic, "游ゴシック体", Meiryo, "メイリオ", sans-serif;
|
注意点としては、上記のように外部フォントをインポートする場合、フォントのロード時間を考慮したPDFレンダリング遅延時間の指定が必須となります。詳しくは、この次に説明するmarkdown-pdfのオプションを参考に設定を行って下さい。
markdown-pdfのオプション
今回ご紹介しているnode-markdown2pdfは、markdown-pdfに依存しています。markdown-pdfのオプションからは、PDFの用紙サイズや余白などのPDFに関わるオプションが設定できます。設定の変更は./index.jsのmarkdownpdf()
メソッドから行って下さい。
./index.js1 2 3 4 5 6 7 8 9 10 11 12
| function convertPDF(markdownPath , pdfPath){ markdownpdf({ cssPath : "src/dist/style.css" , paperFormat : "A4" , renderDelay : 5000 , paperBorder : "2cm" }).from(markdownPath).to(pdfPath , function () { log.info(" -> " + pdfPath); doTask(); }); }
|
主なオプションは以下の通りです。
オプション | 説明 |
cssPath | PDFに適用するスタイルシートのファイルパス |
paperFormat | PDFの用紙サイズ。A3 ,A4 ,A5 ,Legal ,Letter ,Tabloid が指定可能 |
paperOrientation | 用紙の向き。portrait またはlandscape が指定可能 |
paperBorder | 用紙の余白 |
renderDelay | PDFのレンダリング遅延時間。外部ファイルを読み込む際にその読込時間を設ける必要がある時に指定する |
他にも色々できるみたいですので、詳しくはmarkdown-pdfをご覧ください。
github
alanshaw - markdown-pdf