MuPDF 1.2 ライブラリーの C++ ラッパー

MuPDF とは?

MuPDF は、PDF を描画する為のライブラリーで、C で実装されたオープンソースライブラリーである。
非常に軽量で、高速、色々なプラットフォームに対応している。

Adobe の PDF Reader は、はっきり言って「糞」だ、頻繁にバージョンアップを繰り返して、とにかく「ウザイ」し、重いし、良い所は無い。
MuPDF のエンジンを使ったアプリケーションとして、Sumatra PDF がある。
※自分は、AdobeReader はアンインストールして、コレを使っているが、得に不便を感じない。

以前から、自分のフレームワーク(以前から使っていた「glfw」って名称は、GLFW3 と混同しやすいので使えん、新しい名称を考えないと・・・)では MuPDF ライブラリーのラッパーを実装していたが、それはバージョンが 1.0 になる前で、最新は、1.2 となっている。
バージョンアップしたいと思っていたが、API 変わって、書き直す必要があった、最近ようやく、1.2ライブラリーをコンパイルしなおして、ラッパーを書き直した。

コードがかなり洗練され、とても使いやすくなったようだ、ワイド文字列の処理も UTF8 に統一され、レンダリングも簡単になった。

折角なので、簡単な描画サンプルを作ってみた、描画は GLFW3(OpenGL) で、レンダリングされた PDF はテクスチャーとして扱う。
操作方法:
起動したら、PDF ファイルをドラッグ&ドロップ
マウスボタンの右、左でページ移動(PageUp、PageDownキーでも可能)

自分で作成したアプリケーションに PDF を簡単に表示できるのは、色々と便利な事が多い!
このアプリは、サンプルなので、必要最低限の機能しかないのであしからず~

「img_io/pdf_in.hpp」を観てもらえば、大体の使い方は判ると思う。

ソースコード
実行バイナリー

コンパイルに必要なライブラリーパック
※注意 /usr/local/ 以下に展開
※このライブラリーパックに mupdf のライブラリー libfitz.a が同根されています。
※ MuPDF ライブラリーは、freetype2、JPEG、Z-Lib、jbig2dec、OpenJpeg(JPEG2000)などのライブラリーを必要とします。(それも同根してあります)
※JPEG ライブラリーは、x86 アセンブラで高速化してあるバージョンが入っています。

らぶひな PDF
PDF_test1

RX マイコンのPDF
PDF_test2