PDF出力ライブラリとしてlibharuを使ってみることに。
その他の選択肢
- iTextSharp -> AGPLなので却下
- PDFSharp -> 日本語フォントが使えない(調査し、解決しそうだったがC#での開発が却下になってしまったのでお蔵入り)
開発プロダクトがC#からC++に変更になったため、適当に探して見つかったので使ってみることに。
ライセンスはオリジナルの適当なフリーライセンスっぽい。
元々の開発者が日本人のようで、日本語フォントが普通に通る。
セットアップ手順
cmakeのインストール
cmakeとは、コンパイラに依存しないmakeツールのようだ。
下記からダウンロードした。
http://www.cmake.org/files/v3.1/cmake-3.1.1-win32-x86.zip
zipを展開し、適切な場所に置き(c:\home\toolsなど)、パスを通す(PATH=%PATH%;C:\home\tools\cmake-3.1.1-win32-x86\binなど)。
libharu取得
適切な場所(c:\home\gitなど)にて、cloneする。
git clone https://github.com/libharu/libharu.git
cd libharu
※ なお、ホームページからダウンロードできるバージョンはバグ*1があるので最新版を取得した(e190f3e4c169ce40f72381f695f1ea9cd20aec18)
cmakeでビルド
cmakeの作業用ディレクトリを作成
mkdir libharu_build
cd libharu_build
コマンド実行
cmake .. -DLIBHPDF_EXAMPLES=ON -DLIBHPDF_SHARED=OFF
VC++ 2013用のslnファイルが出来る。
[BUILD]->[Build Solution]で全てのプロジェクトがビルドされる。
なお、jpfont_demo.cには"Mincho"が"Mincyo"になっていて実行時エラーが発生するというバグが有るので注意。(一応プルリクしてある)
*1:バグの内容は、出力したPDFを表示すると普通に表示できるのだが、閉じる時に"閉じる前に、「xxx.pdf」への変更を保存しますか?"と聞かれてしまう