PDFDocletをJDK12上で動作させる
JavadocをPDF化したいので探してみたが、PDFDocletというのが良いらしい。
基本的にはここに書かれている通りだ。パッチを当てたものは以下。
しかし、問題があり、PDFDoclet内部で使用しているsun.tools.java.ClassPath、sun.tools.java.ClassFileが、もはやJDK12では提供されていない。これはネット上にあるJDK8のソースから拾ってきた。
さらに、もう一つ問題があり、なぜかタグの中の日本語が全く表示されない。
/**
* <h2>PDFDocletの説明</h2>
* <p>
* これこれの説明
* </p>
* <ul>
* <li>Javaによるプログラム
* </ul>
*/
のようなコメントを書くと、PDFDoclet、Javaという日本語以外の文字しか表示されない。これはHTMLTag.javaに問題があった。パッチを当てたものを以下に置く。
以下の部分が変更箇所である。パッチ前は”body”タグのみ日本語フォントが選択されていた。
if (java.util.Locale.getDefault().getLanguage().equals(
java.util.Locale.JAPANESE.getLanguage())) {
return FontFactory.getFont(
"HeiseiMin-W3",
"UniJIS-UCS2-HW-H",
fontSize,
style,
color);