可以加载的方式比较多,暂时先总结两种:

本地先导入一份pdf文件

type 1: 利用UIWebView加载

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(, , self.view.bounds.size.width, self.view.bounds.size.height)];
[self.view addSubview:webView]; NSString *path = [[NSBundle mainBundle] pathForResource:@"基于Apache+JMeter" ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];

type 2:利用系统的预览文件的框架QuickLook

首先导入框架QuickLook.framework

引入头文件#import <QuickLook/QuickLook.h>

实例化对象

  QLPreviewController *myQlPreViewController = [[QLPreviewController alloc]init];
myQlPreViewController.delegate =self;
myQlPreViewController.dataSource =self;
[myQlPreViewController setCurrentPreviewItemIndex:];
//此处可以带导航栏跳转、也可以不带导航栏跳转、也可以拿到View进行Add
[self presentViewController:myQlPreViewController animated:YES completion:^{
NSLog(@"跳转完成");
}];

声明代理

<QLPreviewControllerDelegate,QLPreviewControllerDataSource>

实现协议

#pragma mark - QLPreviewController代理
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
{
return 1;
} - (id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index
{ NSString *path = [[NSBundle mainBundle] pathForResource:@"基于Apache+JMeter" ofType:@"pdf"];
return [NSURL fileURLWithPath:path];
} - (void)previewControllerDidDismiss:(QLPreviewController *)controller
{
NSLog(@"预览界面已经消失");
} //文件内部链接点击不进行外部跳转
- (BOOL)previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url forPreviewItem:(id <QLPreviewItem>)item
{
return NO;
}

至此结束,加载过程可能比较缓慢,毕竟需要加载本地pdf文件;

两种方式比较可以看出,第一种加载比较方便,但是内存消耗的比较多,第二种内存消耗的比较少,我实际测的是差20MB(用的模拟器)。

mark ---------

iOS 加载pdf格式的文件的更多相关文章

  1. IOS加载PDF文件

    今天的任务是:在iOS上加载显示pdf文件. 方法一:利用webview -(void)loadDocument:(NSString *)documentName inView:(UIWebView  ...

  2. 通过C#来加载X509格式证书文件并生成RSA对象

    private static RSACryptoServiceProvider GetPrivateKey(string priKeyFile, string keyPwd) { var pc = n ...

  3. ios 加载本地html css文件 ps:css和html必须在同一文件夹下面

    NSString *path = [[NSBundle mainBundle] bundlePath]; NSURL *baseURL = [NSURL fileURLWithPath:path]; ...

  4. iOS 加载本地的html文件

    方法1: self.webView  = [[UIWebView alloc]initWithFrame:self.view.bounds]; NSString *path = [[NSBundle ...

  5. cordova程序加载pdf文件的2种方法(ios/android)

    前言 公司目前的前端架构是微信端由vue全家桶负责h5网站的单页应用,android端和ios端则选择cordova打包成apk和app.其中,有一个业务逻辑是点击某个链接进入pdf的展示,h5的方案 ...

  6. 使用 pdf.js 在网页中加载 pdf 文件

    在网页中加载并显示PDF文件是最常见的业务需求.例如以下应用场景:(1)在电商网站上购物之后,下载电子发票之前先预览发票.(2)电子商务管理系统中查看发布的公文,公文文件一般是PDF格式的文件. 目前 ...

  7. Android 如何本地加载pdf文件

    大部分app打开pdf文件是通过intent调起手机中能打开pdf文件的工具,来查看pdf文件,如果需求是,用户在app内下载好pdf文件后,不通过第三方的工具,本地打开. 这样的需求要怎么实现呢?上 ...

  8. Away3D 学习笔记(一): 加载3DS格式的模型文件

    加载外部的3DS文件分为两种: 1: 模型与贴图独立于程序的,也就是从外部的文件夹中读取 private function load3DSFile():Loader3D { loader = new ...

  9. 在iPhoneApp中加载PDF

    原文: http://ios.biomsoft.com/2012/02/17/load-a-pdf-file-in-the-iphone-app-smoothly/ 本节将学习如何从服务器加载 pdf ...

随机推荐

  1. .net面试题升级版

    1.列举ASP.NET页面之间传值的几种方式. 答:使用QueryString,如.../id=1;response.Redirect() 使用Session 使用Server.Transfer 使用 ...

  2. 【转】.net MVC 生命周期

    对于Asp.net MVC,我对它的生命周期还是兴趣很浓,于是提出两个问题: 一个HTTP请求从IIS移交到Asp.net运行时,Asp.net MVC是在什么时机获得了控制权并对请求进行处理呢?处理 ...

  3. mac 好用软件地址存储

    Navicat Premium 12.0.24 for mac已破解中文 https://www.52pojie.cn/thread-727433-1-1.html sublime 破解方法https ...

  4. Java Map类常用方法

    关于Map集合中常用的方法: void clear(); 清空Map boolean containsKey(Object key); 判断Map中是否包含这样的key boolean contain ...

  5. centos自带python2.6升级到python2.7。并解决yum pip easy_install pip等模块兼容性问题

    参考原文:  https://www.cnblogs.com/kimyeee/p/7250560.html   https://www.cnblogs.com/galaxy-gao/p/5796488 ...

  6. C Primer Plus note8

    error: too few arguments to function 'imax'| 运行上面的代码,产生了下面的错误: 中文翻译是:函数imax()中的参数太少. 查看imax()函数声明,发现 ...

  7. untiy3d小工具——修改scene与prefab中的sprite

    坑1:因为替换图片要获取所有包含image的组件,开始我使用的是gameobject.getComponents<Image>()和FindObjectsOfType<Image&g ...

  8. 关于 ie9 不执行 js 的问题

    当写js用 console.log()调试,但没有注释,在ie 9 浏览器上运行时,console.log()  后面的脚本不能再执行了. 为了ie,记得把console.log() 注释

  9. 利用 Task\Query 实现定位 , FeatureLayer 的属性查询

    放纵了几天,又有了学习的动力.今天实现了利用对 FeatureLayer 进行属性查询在地图上进行跳转. 一.我下载了一幅浙江省的县界面地图,存在NAME字段,利用Name就能进行查询了: var n ...

  10. API——SendMessageTimeout

    原文:http://www.cnblogs.com/lzjsky/articles/1777848.html 函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,并且,如 ...