Microsoft WordやMarkdownで文書ファイルを作成し、それをHTMLファイルやPDFファイルに変換したい時、形式ごとにいちいち変換ソフトを用意するのは面倒です。無料のオープンソースソフトウェア「Pandoc」を使うと、ありとあらゆる形式の文書ファイルを他形式の文書ファイルに変換することができます。

Pandoc - About pandoc

https://pandoc.org/

GitHub - jgm/pandoc: Universal markup converter

https://github.com/jgm/pandoc

Pandocは2006年にリリースされた非常に長い歴史を持つ文書変換ツールで、2020年現在でも活発な開発が行われています。変換できる文書ファイル形式の多様さから研究者やエンジニアに広く支持されており、記事作成時点でPandocが対応している文書ファイルの形式は以下となっています。

◆変換先・変換元ともに対応

・Markdown

・reStructuredText

・Emacs Org-Mode

・Emacs Muse

・Textile

・HTML 4

・HTML5

・EPUB version 2 or 3

・FictionBook2

・Haddock markup

・roff man

・LaTeX

・DocBook version 4 or 5

・JATS

・OPML

・CSL JSON

・CSL YAML

・Microsoft Word docx

・OpenOffice/LibreOffice ODT

・Jupyter notebook

・MediaWiki markup

・DokuWiki markup

・Jira wiki markup

◆変換元のみ対応

・txt2tags

・BibTeX

・BibLaTeX

・TikiWiki markup

・TWiki markup

・Vimwiki markup

・CSV

◆変換先のみ対応

・AsciiDoc

・GNU TexInfo

・roff ms

・ConTeXt

・TEI Simple

・OpenDocument XML

・Microsoft PowerPoint

・InDesign ICML

・XWiki markup

・ZimWiki markup

・LaTeX Beamer

・Slidy

・Slideous

・S5

・DZSlides

・Luaによるカスタムフォーマット変換

・PDF

変換可能なフォーマットの関係を図で表すとこんな感じで、とんでもない種類のフォーマットを変換できることがわかります。



Pandocを利用できるプラットフォームはWindowsやmacOSをはじめ、Linux、Docker、GitHub Actionsなどがあります。オープンソースなのでソースコードを取得して自分でビルドすることも可能です。

Pandocはコマンドラインで操作するソフトウェアで、基本的な使い方はどのプラットフォームでも同じ。以下のように変換前のファイルと変換後のファイルをフォーマットとともに指定し、コマンドを実行すればOKです。「-s」オプションは単独のファイルを出力するためのオプションで、HTMLを変換先に指定する場合は指定すべきオプションです。

pandoc 入力ファイル -f 入力ファイルのフォーマット -t 出力ファイルのフォーマット -s -o 出力ファイル


実際にPandocを使ってMarkdownファイルをHTMLファイルに変換し、ブラウザで表示させてみました。リストや引用、表についてもきちんと変換できていることがわかります。



PandocをWindowsにインストールするには、GitHubのリリースページにアクセスして「msi」形式のインストーラーをダウンロードします。



Firefoxを利用している場合は確認のポップアップが表示されるので「ファイルを保存」をクリック。



実行ファイルをダブルクリックし、インストーラーを起動。



利用規約に同意のチェックを入れて「Install」をクリック。



インストールは数秒で完了。「Finish」をクリックし、インストーラーを閉じます。



あとはPowershellやコマンドプロンプトを開けば「pandoc」コマンドが利用できるようになっています。



macOS向けのインストーラーもリリースページに公開されていますが、macOSの場合はHomebrewによるインストールが簡単。インストール後はターミナルアプリからWindowsと同様にpandocコマンドを利用できます。

brew install pandoc


Debian系のLinuxディストリビューションの場合は、公開されているdebファイルをそのままインストールすればOK。

wget https://github.com/jgm/pandoc/releases/download/2.11.0.4/pandoc-2.11.0.4-1-amd64.deb
sudo dpkg -i pandoc-2.11.0.4-1-amd64.deb


Debian系以外のLinuxディストリビューションでは、tar.gzファイルを取得してバイナリファイルをインストールします。

wget https://github.com/jgm/pandoc/releases/download/2.11.0.4/pandoc-2.11.0.4-linux-amd64.tar.gz
sudo tar xvzf pandoc-2.11.0.4-linux-amd64.tar.gz --strip-components 1 -C /usr/local


PandocはChrome OSでも利用することが可能。パッケージマネージャーのChromebrewから簡単にインストールすることができます。

crew install pandoc


Dockerを利用できる環境では、Pandocを実環境にインストールせず、コンテナ上でコマンドを実行することができます。以下のコマンドでは「-v "`pwd`:/data"」オプションで、ホストのカレントディレクトリをコンテナの「/data」ディレクトリにマウントしています。

docker run --rm -v "`pwd`:/data" pandoc/latex Pandocコマンド


他にもPandocは2019年にリリースされたワークフロー自動化ツール「GitHub Actions」でも利用することが可能。また、Pandocは有志が日本語版ユーザーガイドを公開しており、詳細なコマンドオプションはユーザーガイドから確認することができます。

Pandoc User’s Guide 日本語版 - 日本Pandocユーザ会 ドキュメント

https://pandoc-doc-ja.readthedocs.io/ja/latest/users-guide.html