画像提供:マイナビニュース

写真拡大

Markdown(マークダウン)記法をご存じだろうか。これは、文書を記述するための軽量マークアップ言語の一つだ。「#」や「-」といった記号を利用して、見出しやリストなどを指定して、綺麗に整形された文書を出力する。手軽に見栄えの良い文書が作成できるので人気がある。出力フォーマットも、HTML/EPUB/PDF/Word/PowerPoint形式と幅広い。そのためマニュアルや報告書、電子書籍の作成に活用する例も増えている。今回は、Pythonを利用して、Markdownで書いたテキストデータをPDF出力するプログラムを作ってみよう。
○Markdown記法とは?

これまでにも、テキストファイルに書いた文書を見栄えの良いHTMLに変換できるツールやアプリはいろいろあった。特に、Webページをその場で編集できる「Wiki」界隈では、PukiWiki記法やMediaWiki記法など、そのアプリごとに独自の記法が使われてきた。

しかし、最近では、Webのコメント欄や、ブログなどの記事を投稿する場面で、手軽に見栄えの良いドキュメントを生成する目的で、Markdown記法が採用されることが多くなっている。その理由として、プログラマーがよく使うGitHubやBitbucket、Stack OverflowやQiitaなどのWebサービスが、コメント欄などにMarkdownを採用したことが大きい。それに伴って、様々なMarkdown対応ライブラリが公開されている。

それで、Markdownを使えば、手軽に文章をHTMLやPDFなどの形式に変換できるので、大きなメリットとなる。

○Jupyter NotebookでMarkdownを練習しよう

また、本コラムではおなじみのJupyter NotebookもMarkdown記法に対応している。そこで、Jupyter Notebookを使って、Markdownの練習をしてみよう。Jupyter Notebookの実行方法については、本連載の15回目「最新Anacondaに入っている各種ツールを概観しよう」が参考になるだろう。

Jupyter Notebookを起動したら、適当に新規ノートブックを作成しよう。

そして、最初のセルをMarkdownに変更してみよう。画面上部のメニューから[Cell > Cell Type > Markdown]を選択しよう。

すると、Markdownの編集中は、見出しを表す「#」などの記号が自動的に色がついたり太字になったりする。Markdownを記述した後に、実行ボタンを押すと、Markdown記法に基づいて、レンダリングが行われる。また、セルをダブルクリックすると、レンダリング結果から編集画面に戻る。

よく使う記法には、「#」が見出し、「-」がリスト、「>」が引用などがある。また、「*xxx*」のように、アスタリスクで文字列を囲むと強調となり、「xxx」のようにバッククォートで囲むとプログラムやコードの一部であることを示すことができる。

Markdown記法について、ここでは詳しく紹介できないので、以下のリンク先を参考にしよう。

- Qiita > Markdown記法 チートシート --- https://qiita.com/Qiita/items/c686397e4a0f4f11683d

○MarkdownをPDFに変換する手順を確認しよう

さて、Markdownに慣れたところで、Pythonを使って、MarkdownをPDFに変換する方法を確認してみよう。主要なMarkdownのライブラリは、テキストファイルをHTMLに変換するものがほとんどだ。そこで、最初にMarkdownをHTMLに変換し、その後、HTMLをPDFとして出力するという手順でプログラムを作ろう。

まずは、Markdownを扱うために、PyPiからmarkdownパッケージと、PDFを生成するためにpdfkitパッケージをインストールしよう。コマンドライン(Windowsなら、PowerShell。macOSならターミナル.app)を起動して、以下のコマンドを実行してパッケージをインストールしよう。

pip install markdown
pip install pdfkit

あるいは

pip3 install markdown