まあ正直Javadocは印刷してどうこうするものではないと思いますが、やんごとなき事情により印刷したいケースというのもあるわけで、そんなときのためのツールとしてPDFDocletというものを教えてもらいました。
その名の通り、JavadocをPDFとして出力するDocletです。すべてのJavadocが1つのPDFファイルに出力されるので、できたPDFを印刷するだけで済むというシロモノです。
Antで使う場合はこんな感じで。
<javadoc doclet="com.tarsec.javadoc.pdfdoclet.PDFDoclet" docletpath="pdfdoclet-1.0.2-all.jar" classpathref="classpath" additionalparam="-pdf javadoc.pdf" packagenames="jp.sf.amateras.nikocale.*" encoding="UTF-8" private="no"> <sourcepath path="${src.dir}" /> </javadoc>
ただ、そのままだと日本語が文字化けします。ググってみたところ以下の情報を発見。ソースを修正して明示的に文字コードを指定してやればいいみたい。
外から設定できるようにしてくれよー、と思いながらソースを修正して、元のJARファイルの該当クラスのクラスファイルだけを入れ替えて実行したところ、日本語も正しく出力されました。
覚えておくといざというとき役に立つかもしれないツールです。
追記:Javadocの記述次第で例外が出るケースがあるようです。たとえば一行目がpreタグから始まるようなものはダメでした。また、例外が出ても、どのソースでエラーが発生したのかがわからないので、ソースコードの量が多いと調査が大変そうです。HTMLは出力できてもPDFDocletでは出力できないことがあるということは意識しておいたほうがよいかもしれません。