All Articles

ソースコードをPDFで出力

他人のソースコードだったりを読むときに普段 iPad Pro に PDF としてダウンロードし、書き込んだりマークしたりして読むことが多い。

これまでは Windows でこの変換(というか印刷)を行っていたが、Linux を常用するようになったので Linux でも簡単にできるようにしてみた。

enscript

これはソースコードを PostScript や html に変換してくれるパッケージである。

Arch Linux であれば Pacman でインストールする。

何ができるかというと、行番号表示やソースコードのシンタックスハイライトが可能になる。

例えば、C++のソースコードを PS ととして出力するには、

$ enscript --highlight=cpp --color -C -H1 main.cpp -o main.cpp.ps

とすればよい。

--highlight=**でソースコードの言語を指定することができる

どの言語が使えるかは、

$ enscript --help-highlight

で調べることができる(普段使いしそうな言語は殆ど網羅されている感じである)。

-Cは左側に行番号を表示してくれる。

ps2pdf

PS を PDF に変換するには、このパッケージを使う。

使い方は簡単で、

$ ps2pdf main.cpp.ps

とするとmain.cpp.pdfというファイルが生成される。

おまけ

これらを組み合わせた、引数に C++のソースコードを指定すれば PDF が出力される単純なシェルスクリプト。

#!/bin/bash
if [ $# -eq 1 ]; then
	filename=$1
	enscript --highlight=cpp --color -C -H1 $filename -o $filename.ps
	ps2pdf $filename.ps
fi