在IOS中读取Open-XML文档

时间:2010-01-25 09:59:42

标签: iphone openxml

我使用CGPDFDocument类来阅读.pdf个文档并检索页面数量或按编号拉回页面。

我正在寻找一个类似的库,它将对Microsoft Word格式的文档执行相同的操作。我对使用Safari查看文档不感兴趣。

我在应用程序商店中看到一些声称可以阅读.docx.xlsx等MS Office文档的应用程序,但我正在寻找一个库来启用我自己的应用程序的开发做同样的事。有人能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:4)

从最新版本的Microsoft Office生成的文档类型(最终版本为x的文档类型,例如.docx.xlsx.pptx等)实际上是根据OpenXML标准保存的,这个标准相当详细。我提到这一点,因为它会帮助您在阅读和解析应用程序的文档格式时寻求进一步的帮助。

也就是说,这听起来像是在寻找一个标准库,您可以使用它从Objective-C中读取和操作这些类型的文档。

可以找到有关如何使用OpenXML SDK 2.0执行此操作的示例的讨论here。作为一个exerpt:

using (WordprocessingDocument document = WordprocessingDocument.Open(fileName, false))
{
  int pageCount = (int) document.ExtendedFilePropertiesPart.Properties.Pages.Text;
}

可以找到使用Objective-C的OpenXML SDK的教程here(虽然文章中的图像似乎已被破坏)。本教程的代码基于Google Code上的GData Objective-C Client

你也可以参考this SO Question,这是答案,它引用了开源库libOPC,这个网页提供了如何在iPhone应用程序中构建Word文档操作的示例

不幸的是,这些资源都不可能帮助您阅读旧格式的.doc文件,该文件采用更为专有的Microsoft格式。所以 - 我希望这不是你需要做的。无论哪种方式,我希望这些资源有所帮助!如果你让它工作,请告诉我们。

答案 1 :(得分:1)

使用UIWebView加载文档:

-(void)loadDocument:(NSString*)documentName inView:(UIWebView*)webView
{
    NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:nil];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];
}

// Calling -loadDocument:inView:
[self loadDocument:@"mydocument.rtfd.zip" inView:self.myWebview];

取自here。此外,还请查看此forum discussion

答案 2 :(得分:-3)

将本地PDF文件加载到Web视图

- (void)viewDidLoad {
    [super viewDidLoad];

    NSString *thePath = [[NSBundle mainBundle] pathForResource:@"iPhone_User_Guide" ofType:@"doc"];
    if (thePath) {
        NSData *pdfData = [NSData dataWithContentsOfFile:thePath];
        [(UIWebView *)self.view loadData:pdfData MIMEType:@"application/doc"
            textEncodingName:@"utf-8" baseURL:nil];
    }
}

如果通过网络那么

[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com/iphone_user_guide.pdf"]]];