zoukankan      html  css  js  c++  java
  • 在iPhoneApp中加载PDF

    原文: 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.

  • 相关阅读:
    css sprite的实现
    python的range()函数使用方法
    Codeforces Round #260 (Div. 1) 455 A. Boredom (DP)
    n个整数全排列的递归实现(C++)
    AngularJS进阶(三十一)AngularJS项目开发技巧之获取模态对话框中的组件ID
    Swift扩展(Extension)
    leetcode 88 Merge Sorted Array
    Unity3D摄像机尾随人物
    mybatis 高级映射和spring整合之与Spring整合(6)
    mybatis 高级映射和spring整合之查询缓存(5)
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3165667.html
Copyright © 2011-2022 走看看