iOS

2013-09-18, ios

rtfd html形式のファイルをUIWebViewに表示

rtfdファイルそのままの指定は出来ないようで、.rftdディレクトリの中身をzip圧縮しておく必要があります。

NSURL* url = [[NSBundle mainBundle] URLForResource:@"sample"
                                     withExtension:@"rtfd.zip"];
NSURLRequest* req = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:req];

これで任意のrtfdファイルをWebViewに表示する事が出来ます。しかし、rtf形式のドキュメントはどうも印刷を特に意図した仕様になっているらしく、横幅やフォントサイズの調整が今ひとつです。また、書類を変更するたびにzipファイルを作りなおすのも面倒です。

そこで、HTMLを使用した方法に切り替えてみました。こちらは素直にhtmlファイルを読み込みます。この時、baseURLパラメタを以下のように設定するのがコツで、こうすると、このリソースバンドルに含まれる画像をimgタグで参照させることが出来ます。試していませんが、他のリソースファイルも恐らく読み込めるのではないかと思います。

NSURL* url = [[NSBundle mainBundle] URLForResource:@"sample"
                                     withExtension:@"html"];
NSData *data = [NSData dataWithContentsOfURL:url];
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[self.webView loadData:data MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:baseURL];

他にも、さらにシンプルにNSStringを直接読み込む方法などもあります。

[self.webView loadHTMLString:@"Hello,<br/>Web View!" baseURL:nil];

参考URL

この記事は役に立ちましたか?