【问题标题】:Reading Open-XML documents in IOS在 IOS 中读取 Open-XML 文档
【发布时间】:2010-01-25 09:59:41
【问题描述】:

我使用CGPDFDocument 类读取.pdf 文档并检索页数或按页数拉回一页。

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

我在应用商店中看到了一些声称可以阅读 MS Office 文档的应用,例如 .docx.xlsx 等,但我正在寻找一个库来使我自己的应用的开发能够做到这一点.谁能指出我正确的方向?

【问题讨论】:

    标签: iphone openxml


    【解决方案1】:

    最新版本的Microsoft Office生成的文档类型(末尾有x的,如.docx.xlsx.pptx等)实际上是按照@987654330保存的@ 标准,这是相当有据可查的。我之所以提到这一点,是因为它有助于您在阅读和解析应用程序的文档格式方面寻求进一步的帮助。

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

    可以在here 找到有关如何使用 OpenXML SDK 2.0 执行此操作的示例讨论。摘录:

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

    可以在 here 找到使用 Objective-C 的 OpenXML SDK 的教程(尽管文章中的图片似乎已损坏)。本教程的代码基于 Google 代码中的 GData Objective-C Client

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

    很遗憾,这些资源都不可能帮助您阅读旧格式的.doc 文件,该文件是微软专有的格式。所以 - 我希望这不是你需要做的。无论哪种方式,我希望这些资源有所帮助!让我们知道您是否可以正常工作。

    【讨论】:

      【解决方案2】:

      使用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

      【讨论】:

      • 不适用于我的 doc 文件。我在控制台上看到“EXCEPTION CPMessageException: (null)”。有什么线索吗?我仔细检查了文件路径并打开了文件以确保没有问题
      【解决方案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"]]];
      

      【讨论】:

      • 他需要加载 Word 文档而不是 PDF 文档。
      猜你喜欢
      • 2012-04-11
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      相关资源
      最近更新 更多