2009/11/13

[Objective-C][iPhone sdk]UIWebViewを使ってpdfを表示

次回のアプリは、google mapを使うアプリを考えていたのですが、その前に、pdfファイルを表示する方法について調査。

というか、そもそもpdfって表示できるのか?

という素朴な疑問がありました。

でちょっと調べてみると、意外なクラスによってpdfファイルを表示することができるみたいなのです。

それはなんと、

UIWebViewクラス

だったのです。(なんでまた、webViewクラスなの??)

理由を考えても仕方ないので先にすすみます。

UIWebViewで、簡単にドキュメントビューアが作れるというエントリーで知りました。

そこには、リファレンスのTechnical Q&A QA1630: Using UIWebView to display select document typesに、iPhoneがpdfも表示できるという風に解説してありましたが、実際に参照先を読んでみると確かに対応していました。
(しかも、ソースまであった。)

で、ちょっとプログラムを組んでみる事に

- (void)applicationDidFinishLaunching:(UIApplication *)application {
NSURL *path = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"hoge.pdf" ofType:nil]];
NSURLRequest *urlrequest = [NSURLRequest requestWithURL:path];
UIWebView *webView = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
webView.scalesPageToFit = YES;
[webView loadRequest:urlrequest];
[window addSubview:webView];
[window makeKeyAndVisible];

実行結果はこんな感じになります。
Photobucket

うん、確かに表示されました。

しかも、ページもきちんと動くし、今、何ページ目にいるかも表示してくれます。
(画像は2ページ目までマウスで動かした時のもの)

ただ、ちょっと難点なのは、ページ数を指定して、そこをダイレクトに表示できないこと。

ここは、もう一つレイヤーの低いQuartzを使うしかないのかなと。
(サンプルソースもありました。)

うーーーん、表示はできたけど、まだ全然納得いかない。

0 コメント:

コメントを投稿