セカイノカタチ

世界のカタチを探求するブログ。関数型言語に興味があり、HaskellやScalaを勉強中。最近はカメラの話題も多め

マーブルワーズ

PDF出力ライブラリlibHaruを使う

PDF出力ライブラリとしてlibharuを使ってみることに。

libharuのgithub

その他の選択肢

  • 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」への変更を保存しますか?"と聞かれてしまう