WebViewで印刷時にheader/footerを付ける
メモ。
・PrintInfoでNSPrintHeaderAndFooterをYESにするだけではWebViewではheader/footerは印刷されない。
・これは、header/footerの印刷処理がNSViewの-drawPageBorderWithSize: で定義されているから
・WebViewでの印刷処理(実際にはその子要素のView、HTMLの場合WebHTMLView?)の-drawPageBorderWithSize: にはこの処理は実装されていない
・WebHTMLViewはパブリックなクラスではないので、無理やり定義+カテゴリを使って-drawPageBorderWithSize: を置き換え、NSViewの-drawPageBorderWithSize: を実行後にWebHTMLViewの-drawPageBorderWithSize: を実行するようにすればうまくいくんじゃないかい?
・WebHTMLViewのソースは幸いにしてオープン化されているので利用可能。
ということで明日テストしてみる。てかてっきりheader/footerの印刷はNSPrintOperation側でpageHeader/pageFooterを呼んでやっているものだと勘違いしていてハマった感大。
参考資料はhttp://developer.apple.com/releasenotes/Cocoa/AppKitOlderNotes.htmlとかhttp://developer.apple.com/documentation/Cocoa/Conceptual/Printing/Printing.htmlとか。