预览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 支持的文件:
  1. iWork文档
  2. 微软Office97以上版本的文档
  3. RTF文档
  4. PDF文件
  5. 图片文件
  6. 文本文件和CSV文件

首先需要加入framework:


然后加入头文件:

  1. #import <QuickLook/QuickLook.h> 

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

- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller {
return 1;
}
- (id <QLPreviewItem>)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;
}


你可能感兴趣的:(QuickLook,预览打开pdf,打开doc,预览打开Office文档)