❶ iOS 原生載入pdf文檔(主要功能:跳轉指定的頁碼)
在實際的開發過程中,我們會遇到一些需要顯示PDF的場景,比如官方文件(為了保證原有的格式顯示正常,通常會做成PDF來展示),同時也會要求跳轉到指定的PDF的頁碼中,這里我們來討論一個展示PDF並且調整指定的頁碼的方式。
簡單的介紹下載入PDF的幾種方式(PDF可能是網路載入的,也可能是本地的)
在這里我使用CGContext加上UICollectionView來實現載入PDF和跳轉指定頁碼,(其他方法暫時不提及)
在自定義的cell中對showView重寫set方法,重寫cell視圖
在RiderPDFView.m文件中繪制視圖
在PDFReadViewController.m文件中collectionView的代理方法中載入RiderPDFView視圖
pdf閱讀器已經開源了框架,具體使用方法如下
CocoaPods 導入
在文件 Podfile 中加入以下內容:
然後在終端中運行以下命令:
或者這個命令:
完成後,CocoaPods 會在您的工程根目錄下生成一個 .xcworkspace 文件。您需要通過此文件打開您的工程,而不是之前的 .xcodeproj。
❷ iOS PDFKit 開發指北
2017年夏天,在蘋果全球開發者大會(WWDC)上,蘋果公司終於推出了針對於 iOS 的 PDFKit 支持。PDFKit 自從 MacOS 10.4 以來一直在 AppKit for MacOS 中。但 UIKit 卻遲遲得不到支持,盡管蘋果公司之前在 iBooks 和 Mail 中使用過 PDFKit , 但是該框架並未向開發人員開房。
PDFKit 包含了大量關於 PDF 相關的功能,例如,打開,修改,繪圖和保存 PDF ,也包含了搜索文本。在 iOS 11 後,蘋果終於開放了 PDFKit 。目前(雖然離 PDFKit 發布已經過了一年多),但是目前中文資料和 Demo 確實比較少,下面筆者就帶著大家簡單的了解一下 PDFKit。
主要核心功能如下:
PDFView
PDFDocument
PDFPage
PDFAnnotation
讓我看到你們的雙手, put your hands up!
引入 #import <PDFKit/PDFKit.h> ,創建 PDFView ,創建之前,首先要創建 PDFDocument ,這里通過文件路徑 URl 進行創建。
創建 PDFView ,將 PDFDucument 對象賦給 PDFView。
至此,就實現了 PDF 的讀取及顯示。
首先獲取 PDFDocument 的屬性 PDFPage :
通過 PDFPage 的對象方法,可以獲取 PDF 的縮略圖,這里需傳入圖片的 size:
創建 collectionViewCell ,通過 collectionView 就可以實現一個大致的功能。
點擊跳轉
獲取 cell 的點擊事件,取出所點擊的 PDFPage 對象,用下述方法進行跳轉:
PDFOutline 是一個層級關系的對象,他表示 PDF 的大綱(也就是我們常用的書簽)。每個 PDFOutline 對象都可通過 childAtIndex: 方法獲取出他的孩子對象, 注意 ,這里需要先判斷 numberOfChildren ,以確定該 outline 對象存在多少個孩子節點,避免下標超界引發的崩潰。
實現大綱功能
從 PDFDocument 中獲取 PDFOutline
遍歷 outline 孩子節點(默認只遍歷一層)
當點擊節點時,判斷有無孩子節點,進行當前數組的新增或刪除。
這里搜索功能主要靠下述方法實現
調用此方法之前,首先需將 PDFDocument 設置代理,通過 PDFDocument 的代理進行回調。獲取 PDFSelection 對象,
再根據 selection 對象顯示搜索內容。
調用下述方法即可對 PDFView 進行縮放,
實現雙擊縮放或還原:
這里通過設置 pdfView 的 scaleFactor 屬性即可實現, 注意 : scaleFactorForSizeToFit 屬性是當前 PDF 充滿屏幕的比例。
GitHub : https://github.com/japho/PDFDemo
本文原地址: https://japho.top/2018/11/21/guideline-of-pdfkit/