【问题标题】:How to show a NSData object containing a MS Office document without saving to disk?如何在不保存到磁盘的情况下显示包含 MS Office 文档的 NSData 对象?
【发布时间】:2012-01-17 04:02:28
【问题描述】:
我有一个 NSData 对象,其中包含我想要显示的 MS Office Word 文档的内容 - 使用 UIWebView。
我正在使用以下命令:
[self.webView loadData:data MIMEType:@"application/msword"
textEncodingName:@"utf-8" baseURL:nil];
不幸的是,我的屏幕是空的。
如果我尝试将数据保存到文件并使用 UIWebView 的 requestWithURL:url 方法打开文件 - 文件打开就好了。
但是,应用程序必须从内存中的数据加载文件,而不是以任何方式将数据保存到设备上的文件中。
我需要显示什么来加载包含 MS Office 文档的 NSData 对象,而无需先在设备上保存数据?
【问题讨论】:
标签:
iphone
uiwebview
mime-types
nsdata
【解决方案1】:
试试吧:
[self.webView loadData:data MIMEType:@"application/msword" textEncodingName:@"utf-8" baseURL:[NSURL URLWithString:@""]];
nil 有一些东西会导致 UIWebView 不加载某些类型。不确定,但我有类似的问题。这解决了他们。
【解决方案2】:
还有另一种方法可以通过设置正确的 MIMEtype 来打开 office 文档。用于 Excel/ppt 和其他类似 msword。
NSString *mimtype = @"application/vnd.openxmlformats-officedocument.wordprocessingml.document";
self.webView.delegate = self;
[self.webView loadData:data MIMEType:mimtype textEncodingName:@"UTF-8" baseURL:nil];
这也适用于 docx。
谢谢,