
PDFKitを使用したPDFビューア
- 動作環境: macOS10.12以上

ビューア単体で使用することも可能ですが、通常は bookendDesktop.app 内の BookendResource 以下に置かれて bookendアプリから呼び出されます。

-----------------------------------
デバッガ
-----------------------------------
bookendアプリから起動される際のビューア起動時の処理をデバッガで確認したい場合、Document.mの以下をコメントアウトしてください。
この状態でビューアが起動されるとアラートが表示されるので、その状態でデバッガをアタッチすることで以降の処理をデバッガで確認できるようになります。

        /*
        //  デバッガをアタッチする際に使用する
        NSAlert* alert = [NSAlert new];
        alert.informativeText = @"Stop!";
        [alert runModal];
        */
        

-----------------------------------
テスト
-----------------------------------
- PDFのテスト
    普通にアプリを起動してPDFファイルを開くだけです。

- KRPDF,KRPDFXのテスト
    test ディレクトリ以下にある .krlaunchapp ファイルを使用してください。
    ファイル内の<FilePath>の値を実際のファイルパスに修正してビューアで開くことでKRPDF,KRPDFXが開かれます。


-----------------------------------
印刷制御
-----------------------------------
JSONデータによって制御しています。
データの仕様は"bookendクライアントWindows,Mac版仕様"の"印刷制御"を参照
JSONデータはbookendクライアント側でバージョンチェック時に同時にGetOwnerResourceで取得しています。
JSONデータを更新する際はbookendサーバのDBデータとPrinterControl.m内に書かれているデフォルトのデータの両方を更新すること。

printディレクトリ以下に以下のファイルが置いてあります。

- PrintDialog-XXX.txt
    macOS XXXで取得した印刷ダイアログのデータ

- PrintDialog-minify.json
- PrintDialog.json
    印刷制御で使用されるJSONデータ

JSONデータの更新手順: 
1. JSONデータの元になるウィンドウの情報は以下の手順で出力することができます。
	1. PrinterControl.mmを開いて以下のコメントを外す
		/*
			//  デバッグ情報を出力
			outputWindowInfo(window);
		*/
	2. Log.h の以下を1に変更する
		#define BELOG_ENABLE    0
	3. ターゲット PDFViewerCopy をビルド
		*lib/BookendResource/PDFビューアが更新される。
	4. ターゲット BookendDesktop をビルドして実行
		PDFビューアがバンドル内にコピーされた BookendDesktop.app がビルドされる
	5. PDFコンテンツをダウンロードして開き、しばらく印刷ダイアログを表示してからアプリを終了します。
        6. /tmp/bookend_pdf_viewer.log を開くと以下のような印刷ダイアログのウィンドウ情報が出力されています。
		=== key window info =============================================
		0x4afa7520, 'UIT_NSWindow', 'プリント'

2. JSONデータを更新したら、以下のようなサイトでminifyを行って PrintDialog-minify.json に保存します。
	http://www.webtoolkitonline.com/json-minifier.html

3. ステージング環境のDBの owner_resource テーブルの owner_id=1, type=6 のレコードの "JsonData=" の後に値を設定します。
	*PrinterControl.m内に書かれているデフォルトのデータも更新すること。

4. bookend Desktopが1日に1回、このデータを取得するようになっています。
	再インストールすることで最新のデータを使用するので、それでテストします。
	*ステージング環境で起動するには、bookend Desktop.app と同じディレクトリ内に BookendDesktop.debug を作成します。

5. ステージング環境で問題がなければ本番環境のDBにも反映してください。


-----------------------------------
アイコン
-----------------------------------
- 印刷
    https://www.iconfinder.com/icons/172530/print_icon

- 拡大、縮小
    https://www.iconfinder.com/icons/172635/in_zoom_icon
    https://www.iconfinder.com/icons/172636/out_zoom_icon

- サイドバー
    https://www.flaticon.com/free-icon/sidebar_223479#term=sidebar&page=1&position=9
