iOS-PDF预览(缩略图,横纵方向滑动切换,分享到第三方APP,打印等功能)

本文介绍了在iOS项目中实现PDF预览的详细过程,包括缩略图预览、横纵方向切换、分享到第三方应用和打印功能。通过使用Reader框架,实现了自定义扩展性和高性能的PDF查看体验,并分享了如何添加方向切换功能的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近公司项目中增加了课件下载及本地文件预览的功能,课件类型主要支持Word,PDF,PPT,图片等类型,本文主要谈一下PDF的预览,主要包括缩略图预览,横纵方向滑动切换,分享到第三方APP,打印等功能。

PDF文档预览主要有一下的几种方式:

  • UIWebView
  • QLPreviewController
  • UIDocumentInteractionController
  • CGContexDrawPDFPage
网上资料很多,这里就不多说了,各种方式都了解了一下 ,如果需求简单只做简单的预览,用上面的四种方式完全可以实现 ,而且都很轻量级,使用简单。

奈何产品经理怎么可能只做简单的预览呢,需求会上就特意强调了,必须支持缩略图预览(点击缩略图中的任意页,跳转改页大图预览),还要支持横向滑动和纵向滑动,大概是下图中的样子:
这里说明下,先开发了iPad版本,iPhone版本功能与iPad无异,只是UI排布,略微不同。

针对以上需求,上面说的的四种方式就显得扩展性和自定义性太差,所以最终选择框架Reader加载pdf文档,非常的简单易用,集成了打印,分享,发邮件,预览等多种功能。写了demo测试过性能,以及iPad和iPhone的适配 ,非常完美,只是不支持两个方向滑动的切换,所以仔细阅读了源码增加了这个功能,分享出来希望可以帮到有需要的码农。

=========以下篇章需要在看过Reader源码的基础上去阅读=========

其实思路很简单,承载滑动的是一个UIScrollView,源码默认只支持横向滑动,需要添加一个方向的属性,

用切换的功能键去控制

@property (nonatomic, assign) NSInteger scrollDirection;//0 横向 1 纵向

前期时间紧迫就写了一个int去控制,稍后优化代码可改为枚举控制,便于代码阅读。

然后要做的就是在获取到PDF的页数之后去修改UIScrollView的contentSize,根据方向不同,修改其最大的宽/高

- (void)updateContentSize:(UIScrollView *)scrollView

{

    CGFloat contentHeight, contentWidth;

    <

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值