Pandocを用いてMarkdownからWordファイルに一発変換

作成:
カテゴリー: 業務効率化
タグ: Markdown Pandoc bash

業務に用いる資料の大半は、Markdown記法で作成し管理しています。このブログや事務所サイトの内容もMarkdownで書いていますし。

関連:ブログ・サイトの管理をWordPressからHugoに移行したら爆速で快適

ただ、雑誌の執筆依頼などで、Word形式のファイルによる提出を求められることもあり、これまではWordに毎回コピペしていました。

文字数が少ない場合はこれでも問題ないわけですが、見出しやリスト形式などの反映はWord上で行う必要がありますし、記事は完成しているにも関わらず、Wordの装飾部分で時間を取られるのも地味に困るところです。文字数が多い原稿になると、この装飾作業だけでも大変ですし。

なお、Markdownを知らない方のために、WikipediaのMarkdownを以下に引用しておきます。

Markdown(マークダウン)は、文書を記述するための軽量マークアップ言語のひとつである。

本来はプレーンテキスト形式で手軽に書いた文書からHTMLを生成するために開発されたものである。

しかし、現在ではHTMLのほかパワーポイント形式やLATEX形式のファイルへ変換するソフトウェア(コンバータ)も開発されている。

Pandocのインストール

Pandocのインストールは、公式のインストーラーがあるため、以下の記事でも紹介されているとおり簡単です。

参考:Pandocの比較的簡単なインストール方法

ただ、Macであれば、ターミナルから以下のコマンド一発でインストールできます。

$ brew install pandoc

ちなみに、今回はWordファイルの作成がテーマなので、手持ちのWindowsにもPandocをインストールしてみましたが、こういったインストール作業1つとっても、Windowsは面倒という印象が拭えないところです。

まあ、普段Windowsを利用していないから、慣れていない・環境構築ができていないというのが大きな要因でしょうけど。

Pandocを用いたWordファイルへの変換

まず、Pandocを用いたファイル変換の基本は、以下のとおり。

$ pandoc input.txt -o output.html

なお、Pandocの公式ドキュメントでは、

$ pandoc -o output.html input.txt 

と紹介されていますが、個人的に、変換元ファイル → 変換先ファイルの方が好きです。

そして、本題のWordファイルに変換する際も、基本と同様に、

$ pandoc input.txt -o output.docx

と拡張子を.docxにするだけでOKです。

試しにサンプルファイルとして、以下のMarkdownファイルを変換すると、

# 見出し1

## 見出し2

本文の始まり

- リスト1
- リスト2
- リスト3

[リンク](URL)

以下の図のようなWordファイルが作成できます。

きちんと、見出し1、見出し2として設定され、リスト、リンクも反映されています。また、ここでは紹介しませんが、Pandocでは図の貼り付けも完璧に再現してくれます。

ただ、見出しの色は青で、フォントはMSゴシック、本文のフォントはMS明朝と、はっきり言ってダサい・・・

ちなみに、Windowsのデフォルトのフォントって、メイリオになって、その後、Yu Gothicに行き着いていると思っていましたが、違うんでしたっけ?

自分好みのテンプレートを適用してWordに変換する方法

なぜ、こんなダサいWordファイルになるかというと、Wordのデフォルトのテンプレートがそのようになっているからです。

Wordを単なる出力ファイルとして扱っているとはいえ、依頼先に提出する原稿でもあるため、最低限の体裁は整えておきたいところです。ダサい人と思われるのもイヤだし・・・

ということで、自分好みのWordテンプレートを作成・適用して変換するための手順を紹介します。実は、ここで少しだけつまずいたので備忘録を兼ねて。

  1. Wordでテンプレートファイルを作成する。拡張子は.dotxになる。
  2. 1のテンプレートファイルを、変換するMarkdownファイルと同じフォルダに保存する。
  3. 以下のコマンドを実行する。
$ pandoc XXX --reference-doc=YYY -o ZZZ
  • XXXには、Markdownのファイル名(拡張子は.md)
  • YYYには、テンプレートのファイル名(拡張子は.dotx)
  • ZZZには、Wordのファイル名(拡張子は.docx)

を入れてください。

つまずいた箇所 - 基本は公式ドキュメント

私がつまずいた箇所は、–reference-docを、–reference-docxとしていた部分です。

わかりやすく解説しているブログ記事に「–reference-docx」と書かれていたこと、Wordの拡張子が.docxであることから勘違いしたまま進めていたので、ずっとエラーが出ていたわけです。

また、そのブログ記事で紹介されていたコマンドが他の引数も含むものであったため、エラーの発生箇所を勘違いしていました。

ただ、公式ドキュメントを読めば、–reference-docとちゃんと書いているわけです。このブログで人事労務の実務を行う際には、ブログ記事を鵜呑みにせず、行政が発表する1次情報を確認せよと言っているのに・・・我ながら恥ずかしいことです。

まあ、ブログ記事を書いた人もその時点では動いていたのでしょうから、コマンドが変わったのかもしれませんし。

なお、2で「テンプレートファイルを、変換するMarkdownファイルと同じフォルダに保存する」と書いていますが、設定をすれば同じフォルダに置く必要はありません。私は、欲ばってこの部分もひとまとめにして最初から変換しようとしたので失敗しました。

テンプレートを適用して完成したWordファイル

こうして完成したWordファイルは以下のとおり。変更したのは、見出しのフォントの色を黒にして、書体をメイリオにしただけですが・・・

ちなみに、Windowsの環境設定は不慣れなので、以下の記事を参考に設定しました。こうしてMacとWindows、どちらでもMarkdown → Wordがコマンド一発で変換できるようになりました。

なにより、取りかかっていた6ページの原稿を、一瞬でWordファイルに変換できるのはありがたいことです。

参考:Markdownをpandocでwordへ変換するためのテンプレート作成

【無料】毎月1回、効率的に人事労務の情報を入手しませんか?

あべ社労士事務所は、毎月1回(次回はに発出予定)、

  • 毎年のように改正される労働法令への対応に頭を悩ませている
  • 働き方の見直しといっても、具体的な実務でどう対応すれば良いかわからない
  • 総務や経理などの他の業務を兼務しているので、人事労務業務だけに時間を割けない

といった悩みを抱える経営者・人事労務担当者向けに、公開型のブログでは書けない本音を交えて、人事労務に関する情報・ノウハウ、時期的なトピックをメールマガジンでお送りしています。

しかも「無料」で。

過去の配信分は公開しません。

情報が必要な方は、いますぐ、以下のフォームから購読の登録をしてください。同業の社労士の方も情報収集のために、遠慮なく登録していただいて結構です(^^)

購読して不要と思ったら簡単に解除できますのでご安心ください。

注意

氏名の欄には、会社名ではなく、本名をフルネーム、漢字で入れてください。