phicdy devlog

Androidアプリ開発やその他技術系の記事をたまに書きます

AndroidとかiOSとかモバイル多め。その他技術的なことも書いていきます。

MarkdownをPandocとブラウザを使ってPDFに変換する

GithubのREADMEなどで使われるMarkdownの形式で文章を書いたり、メモを取ることが最近多くなってきた。
ただ、Markdownの形式で書いていると、人に渡すときに結構困る。
というのもファイルを渡す人がMarkdownに慣れているとは限らないし、そもそもMarkdownエディタ自体をインストールしていなくてファイルを見られない可能性がある。

そこで今回はMarkdownのファイルをPDFに変換してみた。
変換方法を調べるとMarkdown→Tex→PDFというやり方が多く出てくるが、Texの環境を入れるのがなかなか大変(時間がかかる)ので、ただMarkdownを変換したいだけの今回はパスする(綺麗に変換をしたいならこのやり方の方がよい)。
今回の変換方法としては、MarkdownをHTMLファイルに変換し、それをブラウザで開いてPDFで保存する。

今回はMarkdownをHTMLに変換するツールとしてPandocを使う。
PandocのインストールはMacのhomebrewを使って行った。

参考: Haskell製のMarkdownをHTMLやLaTeXに変換できるPandocのインストールとサンプル - 三等兵

※結構時間がかかるので注意

$ brew install haskell-platform
$ cabal update
$ cabal install cabal-install    // cabalのアップデート
$ cabal install pandoc

私はbashを使っているので~/.bash_profileに以下を追加する。

export PATH=$PATH:${HOME}/.cabal/bin

パスが通っているかを確認

$ source ~/.bash_profile     // bash_profileを再読み込み
$ echo $PATH                 // パスを確認
$ pandoc -v 

現在(2014/11/5)時点でバージョン1.13.1がインストールされた。

$ pandoc -v
pandoc 1.13.1
Compiled with texmath 0.8, highlighting-kate 0.5.9.
Syntax highlighting is supported for the following languages:
    abc, actionscript, ada, apache, asn1, asp, awk, bash, bibtex, boo, c,
    changelog, clojure, cmake, coffee, coldfusion, commonlisp, cpp, cs, css,
    curry, d, diff, djangotemplate, dot, doxygen, doxygenlua, dtd, eiffel,
    email, erlang, fasm, fortran, fsharp, gcc, glsl, gnuassembler, go, haskell,
    haxe, html, ini, isocpp, java, javadoc, javascript, json, jsp, julia, latex,
    lex, lilypond, literatecurry, literatehaskell, lua, m4, makefile, mandoc,
    markdown, mathematica, matlab, maxima, mediawiki, metafont, mips, modelines,
    modula2, modula3, monobasic, nasm, noweb, objectivec, objectivecpp, ocaml,
    octave, opencl, pascal, perl, php, pike, postscript, prolog, pure, python,
    r, relaxng, relaxngcompact, rest, rhtml, roff, ruby, rust, scala, scheme,
    sci, sed, sgml, sql, sqlmysql, sqlpostgresql, tcl, tcsh, texinfo, verilog,
    vhdl, xml, xorg, xslt, xul, yacc, yaml, zsh
Default user data directory: /Users/kyamaguchi/.pandoc
Copyright (C) 2006-2014 John MacFarlane
Web:  http://johnmacfarlane.net/pandoc
This is free software; see the source for copying conditions.
There is no warranty, not even for merchantability or fitness
for a particular purpose.

そしてMarkdownをHTMLファイルに変換する。

$ pandoc -s hoge.md -o hoge.html

最後に変換されたHTMLをブラウザで開いて印刷メニューからPDFで保存する

f:id:phicdy:20150530185822p:plain