App加载PDF文件预览

转载:http://blog.csdn.net/kmyhy/article/details/9218091


原文: http://ios.biomsoft.com/2012/02/17/load-a-pdf-file-in-the-iphone-app-smoothly/

 

本节将学习如何从服务器加载 pdf 文件到 iOS程序中。

这需要使用 QuickLook Framework 中的 QLPreviewController类。使用这个类,你可以查看如下文档:

a) iWork 文档
b) Microsoft Office 文档
c) RTF 文档
d) PDF 文档
e) 图片
f) Text 文件
g) CSV (逗号分隔文件)

 

在本教程中,我将显示 pdf 文件,这个文件可能放在任何地方:服务器或者应用程序束。但为了更好地演示,我将从服务器获取这个文件。


步骤1: 打开 Xcode 创建如下所示界面:

步骤 2: 加入Quick Look framework 到项目中,并在 view controller 的.h文件中import 相应的头文件:#import <QuickLook/QuickLook.h>。在 table view 的 didSelectRowAtIndex 方法中创建QLPreviewController 实例,然后指定它的dataSource 和 delegate 。

-(void)tableView:(UITableView *)tableViewdidSelectRowAtIndexPath:(NSIndexPath *)indexPath{

 

    //用不同 URL 字符串初始化 fileURL 对象

    switch (indexPath.row) {

       case 0:

           fileURL = [NSURL URLWithString:kStringURLViewControllerPDF];

           break;

 

      case 1:

           fileURL = [NSURL URLWithString:kStringURLQLPreviewControllerPDF];

           break;

           case 2:

           fileURL = [NSURL URLWithString:kStringURLUIDocumentInteractionControllerPDF];

           break;

    }

    //创建 QLPreviewController 实例

    QLPreviewController *previewController =[[QLPreviewControlleralloc] init];

 

    //设置 datasource 属性为 self

    previewController.dataSource = self;

 

    // QLPreviewController 压入 NavigationController 堆栈中显示

    [[self navigationController] pushViewController:previewController animated:YES];

    [previewControllerrelease];

}

代码说明:

主要的代码都已加上了注释。我们初始化了filURL对象,这个对象是一个NSURL,将会被作为 QLPreviewController 的datasource ,以便加载 pdf 文件。

 

步骤 3: 实现QLPreviewController datasource 方法。在这个方法中完成 PDF的显示。

#pragma markQLPreviewControllerDataSource

 

// 返回preview controller要预览的数目

 - (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController*)previewController

{

    return30;

}

 

// 返回preview controller  即将预览的内容

returns the item thatthe preview controller should preview

- (id)previewController:(QLPreviewController*)previewControllerpreviewItemAtIndex:(NSInteger)idx

{

    return fileURL;

}

代码说明:

numberOfPreviewItemsInPreviewController: 方法通知Quick Look preview controller 在预览导航窗口中有多少项内容(必须实现)。

previewItemAtIndex: 方法根据索引返回指定条目(必须实现)。

步骤 4: 将视图添加到 navigation controller,然后将 navigation controller 添加到 window。当然你也可以不使用navigation controller 。

步骤 5: 运行程序,查看 PDF's

可以缩放和打印PDF。

你还可以使用 UIDocumentInteractionController,但它有点复杂,我觉得 Quick Look 更简单一些。

源代码下载地址:here.


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值