CFURLRef pdfURL = (CFURLRef)CFBridgingRetain([[NSURL alloc] initFileURLWithPath:source]);
余慶網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,余慶網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為余慶上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的余慶做網(wǎng)站的公司定做!
CGPDFDocumentRef pdfRef = CGPDFDocumentCreateWithURL((CFURLRef) pdfURL);
或者
NSURL * url = [NSURL URLWithString:self.fileName];
CFURLRef pdfURL = (__bridge CFURLRef _Nonnull)url;
CGPDFDocumentRef pdfRef = CGPDFDocumentCreateWithURL(pdfURL);
2017年夏天,在蘋果全球開發(fā)者大會(WWDC)上,蘋果公司終于推出了針對于 iOS 的 PDFKit 支持。PDFKit 自從 MacOS 10.4 以來一直在 AppKit for MacOS 中。但 UIKit 卻遲遲得不到支持,盡管蘋果公司之前在 iBooks 和 Mail 中使用過 PDFKit , 但是該框架并未向開發(fā)人員開房。
PDFKit 包含了大量關(guān)于 PDF 相關(guān)的功能,例如,打開,修改,繪圖和保存 PDF ,也包含了搜索文本。在 iOS 11 后,蘋果終于開放了 PDFKit 。目前(雖然離 PDFKit 發(fā)布已經(jīng)過了一年多),但是目前中文資料和 Demo 確實比較少,下面筆者就帶著大家簡單的了解一下 PDFKit。
主要核心功能如下:
PDFView
PDFDocument
PDFPage
PDFAnnotation
讓我看到你們的雙手, put your hands up!
引入 #import PDFKit/PDFKit.h ,創(chuàng)建 PDFView ,創(chuàng)建之前,首先要創(chuàng)建 PDFDocument ,這里通過文件路徑 URl 進行創(chuàng)建。
創(chuàng)建 PDFView ,將 PDFDucument 對象賦給 PDFView。
至此,就實現(xiàn)了 PDF 的讀取及顯示。
首先獲取 PDFDocument 的屬性 PDFPage :
通過 PDFPage 的對象方法,可以獲取 PDF 的縮略圖,這里需傳入圖片的 size:
創(chuàng)建 collectionViewCell ,通過 collectionView 就可以實現(xiàn)一個大致的功能。
點擊跳轉(zhuǎn)
獲取 cell 的點擊事件,取出所點擊的 PDFPage 對象,用下述方法進行跳轉(zhuǎn):
PDFOutline 是一個層級關(guān)系的對象,他表示 PDF 的大綱(也就是我們常用的書簽)。每個 PDFOutline 對象都可通過 childAtIndex: 方法獲取出他的孩子對象, 注意 ,這里需要先判斷 numberOfChildren ,以確定該 outline 對象存在多少個孩子節(jié)點,避免下標超界引發(fā)的崩潰。
實現(xiàn)大綱功能
從 PDFDocument 中獲取 PDFOutline
遍歷 outline 孩子節(jié)點(默認只遍歷一層)
當點擊節(jié)點時,判斷有無孩子節(jié)點,進行當前數(shù)組的新增或刪除。
這里搜索功能主要靠下述方法實現(xiàn)
調(diào)用此方法之前,首先需將 PDFDocument 設(shè)置代理,通過 PDFDocument 的代理進行回調(diào)。獲取 PDFSelection 對象,
再根據(jù) selection 對象顯示搜索內(nèi)容。
調(diào)用下述方法即可對 PDFView 進行縮放,
實現(xiàn)雙擊縮放或還原:
這里通過設(shè)置 pdfView 的 scaleFactor 屬性即可實現(xiàn), 注意 : scaleFactorForSizeToFit 屬性是當前 PDF 充滿屏幕的比例。
GitHub :
本文原地址:
非常感謝大家對我的關(guān)注?。。?!
打開文件的方法:
1.獲取文件的沙盒路徑path
2.將path路徑轉(zhuǎn)化URL
3.用webView顯示出來
前段時間公司項目加了許多關(guān)于PDF文件操作的需求,其中包括 PDF文檔的預(yù)覽 、 PDF文件格式轉(zhuǎn)換 、 從其他App獲取文件 、 PDF文檔的批注與修改 。這篇文章我會先記錄下PDF文檔的幾種預(yù)覽方式。
先看效果:
蘋果的webView組件可以預(yù)覽各種格式的文件,支持在線預(yù)覽和本地預(yù)覽,相比于安卓的webView控件簡直就是一大神器,UIWebview使用起來也非常簡單
QLPreviewController 是系統(tǒng)自帶的文件預(yù)覽控制器,QL全稱 quick look 快速查看的意思,要使用QLPreviewController先得在文件中導(dǎo)入頭文件 #import QuickLook/QuickLook.h ,并且實現(xiàn)其代理方法 QLPreviewControllerDelegate
使用UIDocumentInteractionController預(yù)覽文件也得遵循 UIDocumentInteractionControllerDelegate 代理方法,UIDocumentInteractionController本身并不是一個控制器類,它直接繼承 NSObject ,所以就不能直接push或者模態(tài)跳轉(zhuǎn)了,所以需要使用它類方法提供的模態(tài)跳轉(zhuǎn)函數(shù)
利用 CGContexDrawPDFPage 和 UIPageViewController 實現(xiàn)翻頁瀏覽功能,這種方法只能加載本地的PDF文件,但是顯示效果比其他幾種炫酷很多。具體使用方法參考 iOS開發(fā)筆記——PDF的顯示和瀏覽 這篇博客。也可以參考本文的 Demo
關(guān)于PDF文檔的預(yù)覽其實不止上文介紹的幾種方法,還可以通過第三方SDK來加載并對PDF文檔進行批注與修改,等有時間我會放在后面一起介紹。
iPhone要想在手機上編輯PDF文檔那就必須要安裝PDF閱讀器,現(xiàn)在PDF閱讀器都具備編輯PDF的功能。傳送門
編輯方法:
1、安裝PDF閱讀器
2、打開要編輯的pdf文檔
3、點擊底部“編輯”進入編輯模式
4、編輯你需要修改的對象
5、保存文檔即可