iOS开发之pdf文档的加载与浏览的4种方式

本文总结了iOS开发中PDF文档加载的四种常见方法:UIWebView、QLPreviewController、CGContext结合UIPageViewController及第三方库vfr/Reader。详细介绍了每种方式的使用场景和代码实现。
摘要由CSDN通过智能技术生成

前言

在我们的开发中,有些像电子书类型的app的开发会涉及到pdf文档的加载与展示。由于笔者项目中正好涉及到这块,于是将pdf常用的几种加载方式做个总结。以供后面可能用到的同学做个参考。

正文

通常我们用到的pdf文档的加载方式有4种:

  • UIWebView加载本地或者网络pdf文档
  • QLPreviewController加载pdf文档
  • 用CGContext画pdf文档,并结合UIPageViewController展示
  • 第三方框架vfr/Reader加载pdf文档

下面就按照上面4种方式的顺序依次介绍具体的用法。

UIWebView加载本地或者网络pdf文档

UIWebView加载pdf文档比较简单,加载本地文档和网络文档用法几乎差不多。
浏览方式是上下拖动,支持放大缩小,以及选择copy等。
加载本地文档:

//初始化myWebView
    UIWebView *myWebView = [[UIWebView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    myWebView.backgroundColor = [UIColor whiteColor];
    NSURL *filePath = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"myHome" ofType:@"pdf"]];
    NSURLRequest *request = [NSURLRequest requestWithURL: filePath];
    [myWebView loadRequest:request];
    //使文档的显示范围适合UIWebView的bounds
    [myWebView setScalesPageToFit:YES];

加载网络文档:

//初始化myWebView
    UIWebView *myWebView = [[UIWebView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    myWebView.backgroundColor = [UIColor whiteColor];
    NSURL *filePath = [NSURL URLWithString:@"https://www.tutorialspoint.com/ios/ios_tutorial.pdf"];
    NSURLRequest *request = [NSURLRequest requestWithURL: filePath];
    [myWebView loadRequest:request];
    //使文档的显示范围适合UIWebView的bounds
    [myWebView setScalesPageToFit:YES];

QLPreviewController加载pdf文档

在iOS 4 SDK之后苹果退出了QLPreviewControllerAPI,组件允许用户浏览许多不同的文件类型,如XLS文件,Word文档文件,PDF文件等,但是使用此API之前用户必须导入QuickLook.framework框架,使用的QLPreviewController时,你必须实现此协议QLPreviewControllerDataSource的两个代理方法。
上下滑动支持单个文档的浏览,左右滑动支持不同文档间的切换,还支持苹果自带的分享打印等。
QLPreviewControllerDataSource的两个代理方法:

/*
 *所要加载pdf文档的个数
 */
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller;

/*
 * 返回每个index pdf文档所对应的文档路径
 */
- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index;

QLPreviewController加载pdf文档

//QLPreviewController初始化,需要导入QuickLook.framework
QLPreviewController *QLPVC = [[QLPreviewCo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值