とあるSEの手順書

個人的な技術メモです。無保証ですが参考になりましたら幸いです。

C#でlibHaruを使ってPDFを出力してみよう。その1「libpngとzlibビルド編」

C#でPDFを出力したいとき、いろいろなライブラリの使用を検討されると思いますが・・
ライセンス的に難しいと思うことが多いとお嘆きの方に、libHaruを検討してみてはどうでしょうか。

libHaruは、もともとIPA未踏ソフトウェア創造事業で採択されたもののようで、
商用利用も可能です。
https://www.ipa.go.jp/files/000006420.pdf


これをC#で活用するには、いくつかの手順をこなさないといけないので、
試行錯誤したときのメモを兼ねて記載します。

大きな流れとしては、以下になります。

  1. libpngとzlibのビルド
  2. libHaruのビルド
  3. C#プロジェクトの作成とインタフェースの追加

Visual Studio 2017 Communityを使用しています。

libpngとzlibのダウンロード

まず、公式サイトからlibpngの最新版をダウンロード
libpng Home Page

zipをダウンロードします。記載時点では、1.6.32でした。以降、これに準じて記載します。

f:id:stone-book:20170909233800p:plain
libpngダウンロード

つぎに、libpngのビルドに必要なzlibをダウンロード
以下のファイルに必要なzlibのバージョンが記載されています。

lpng1632\projects\vstudio\zlib.props

f:id:stone-book:20170909234039p:plain
必要なzlibのバージョンの確認
記載時点では、1.2.8でした。

zlibのリポジトリから対応するバージョンをダウンロード
Index of /fossils

それぞれダウンロード、解凍後は、それぞれを同じフォルダに格納します。

f:id:stone-book:20170909234412p:plain
ディレクトリ構成
私は、E:\buildというフォルダに格納しました。

libpngのビルド

以下のファイルをダブルクリックしてVisual Studioを起動します。

lpng1632\projects\vstudio\vstudio.sln

初回起動時には、このように聞かれる場合があります。「OK」をクリックします。

f:id:stone-book:20170909235218p:plain
起動時のメッセージ

次に、ビルド構成「Release Library」に選択します。
このまま、ビルドすると、警告が生じされ、コンパイルが止まってしまうため、
警告が出てもコンパイルを続行させるため、プロジェクトの設定を次のように変更します。

f:id:stone-book:20170909235613p:plain
プロジェクトの設定
「警告をエラーとして扱う」を「いいえ /WX」にします。
これは、pngXXXのプロジェクトに対して、それぞれ設定します。

設定が完了すれば、ビルドを実行します。

f:id:stone-book:20170911221300p:plain
ビルドの実行

ビルドが無事に完了すれば、Release Libraryのフォルダにファイルが出力されます。

f:id:stone-book:20170910000559p:plain
ビルド出力結果

これで、libpngとzlibビルドが完了です。