预览doc、xslx等Office文档和pdf以及Quicklook中QLPreviewController

在app中我们有时候需要查看一些电脑上的文件,比如常用的Office文件和pdf等,首先想到的是试试用UIWebView加载文件,其实还有一种方法就是用iOS4.0及之后的SDK自带的一种预览的视图控制器来打开文件。但是注意,不管是用上面哪种方法,都不能修改打开的文件,只能是个预览的作用;

方法一:

用UIWebView加载文件

-(void)loadDocument
{
    NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"doc"];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
   UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 20, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height-64-20)];
        webView.multipleTouchEnabled = YES;
        webView.scalesPageToFit = YES;
        [self.view addSubview:webView];
    [webView loadRequest:request];
}
方法二:

下面方法是直接通过QLPreviewController打开文档
Quicklook 支持的文件:

  • iWork文档
  • 微软Office97以上版本的文档
  • RTF文档
  • PDF文件
  • 图片文件
  • 文本文件和CSV文件

首先需要加入framework:

然后加入头文件:

#import   

-(void)gotoFile
{
    QLPreviewController *qlViewController = [[QLPreviewController alloc] init];
    qlViewController.dataSource = self;
    [self.navigationController pushViewController:qlViewController animated:YES];
}

- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
 {
    return 1;
}

- (id )previewController:(QLPreviewController *)controller 
      previewItemAtIndex:(NSInteger)index
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    if (!documentsDirectory) 
    {
          NSLog(@"Documents directory not found!");//return ;
    } 
    NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"test.doc"]; 
    NSURL *myQLDocument = [NSURL fileURLWithPath:appFile];
    return myQLDocument;
}

你可能感兴趣的:(预览doc、xslx等Office文档和pdf以及Quicklook中QLPreviewController)