MarkdownでPDF生成

カテゴリ:  Tech タグ:  markdown
/images/2022/07/13/report.jpg

今の会社では四半期に一度自分の活動を振り返るというイベントがあるのですが、 Wordでインデントも改行もつけずにぎっしり2ページで振り返りをまとめるという 謎の儀式があります。

Wordを使う意味もなく逆にやりづらいので、エディタでMarkdown記法でサクッと 書きつつそれっぽいレイアウトのPDFに変換してくれるよう md-to-pdf を導入しました。

md-to-pdfの導入

私の場合は、asdfを使っているので以下の手順で導入しました。

$ asdf add plugin nodejs
$ asdf install nodejs latest
$ npm install -g md-to-pdf

これでインストール完了です。

以下のよう実行すると、hogehoge.pdfというpdfを生成してくれます。

$ npx md-to-pdf hogehoge.md

md-to-pdfで使用するスタイルシートの調整

PDF生成時にMarkdownからの変換時に使うスタイルシートを指定できます。

うちの会社では、文字はタイトルであろうと全て10ポイントなど決まりがあります。 適当に GitHub-markdownのCSSを引っ張ってきて修正しました。

Markdownでレポートを作成

md-to-pdfでは、ファイルを先頭に '---'で仕切りにスタイルシートの指定や、用紙サイズの指定、 ヘッダ・フッタの指定ができます。

以下がサンプルのMarkdownです。

---
stylesheet: ./github-markdown-mod.css
body_class: markdown-body
pdf_options:
  format: A4
  margin: 20mm 16mm
  displayHeaderFooter: true
  headerTemplate: |-
    <style>
      section {
        margin: 0 auto;
        font-family: system-ui;
        font-size: 10px;
        color: darkgrey;
      }
    </style>
    <section style="text-align:left;">
      XX Operations  | Writing a Narrative (Template Version:1.0) <br />
      Splatoon Japan Result Document - OPT-IKA - Takeshi Kitano 2022/Q2
    </section>
  footerTemplate: |-
    <section>
      <div>
        Page <span class="pageNumber"></span>
        of <span class="totalPages"></span>
      </div>
    </section>
---

# 1.2022Q2の課題と2022Q1のアクションプラン
そういう事を知っています。そうしてそこで美しい一対の男女を視線の外にはいつでも
一人であった。そうして、なるべくは書生に縁の遠いそんな内輪の話は、容易に自分の
室の洋燈を手に持った団扇をわざとばたばたいわせた。無理をして、余所目にも忙しそ
うに見える東京をぐるぐる眺めました。しかも私の疑惑はまだその上に私の方が友達の
保護の下に細い路が開けた。眼のうちにも異様の光がKの上に頬杖を突きながら、その
夜明を待ち焦れた私は、当分元の宿に留まる覚悟をしながら遊んだのです。私はちょう
ど他流試合でもするから周旋してくれました。

# 2. 2022Q2の成果とその分析
## 2.1 Performance Against Goals(Appendix 1)
**Booking(Appendix 2)** :

以下のような PDFが生成されます。

サンプルPDF

生成されたPDF

まとめ

意外にシンプルでかっこいいPDFが生成できました。

これで次回からサクサクとエディタでレポートを作れます。

コメント