Search code examples
iosobjective-c.doc

Opening word,excel, and PDF files without using UIWebview on iOS


Is it possible to open word and excel file in iPhone/iPad without using UIWebview?


Solution

  • You have two options. For iOS 4.0 or later, you can use the QLPreviewController. You will need to implement the following two methods-

    - (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller 
    {
      return 1; //assuming your code displays a single file
    }
    
    - (id <QLPreviewItem>)previewController: (QLPreviewController *)controller previewItemAtIndex:(NSInteger)index 
    {
      return [NSURL fileURLWithPath:path]; //path of the file to be displayed
    }
    

    And initialize the QLPreviewController as follows-

    QLPreviewController *ql = [[QLPreviewController alloc] init];
     ql.dataSource = self;
     ql.delegate = self;
     ql.currentPreviewItemIndex = 0; //0 because of the assumption that there is only 1 file  
     [self presentModalViewController:ql animated:YES];
     [ql release];
    

    For older iOS versions, you can use the UIDocumentInteractionController in the following way. Implement the delegate method-

    - (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller {
     return self;
    }
    

    Init & display-

        UIDocumentInteractionController* docController = [UIDocumentInteractionController interactionControllerWithURL:fileURL];
    docController.delegate = self;
    [docController presentPreviewAnimated:YES];
    

    Thanks,

    Akshay