CFURLRef pdfURL = (CFURLRef)CFBridgingRetain([[NSURL alloc] initFileURLWithPath:source]);
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),井陘企業(yè)網(wǎng)站建設(shè),井陘品牌網(wǎng)站建設(shè),網(wǎng)站定制,井陘網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,井陘網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(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 進(jìn)行創(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 對象,用下述方法進(jìn)行跳轉(zhuǎn):
PDFOutline 是一個層級關(guān)系的對象,他表示 PDF 的大綱(也就是我們常用的書簽)。每個 PDFOutline 對象都可通過 childAtIndex: 方法獲取出他的孩子對象, 注意 ,這里需要先判斷 numberOfChildren ,以確定該 outline 對象存在多少個孩子節(jié)點,避免下標(biāo)超界引發(fā)的崩潰。
實現(xiàn)大綱功能
從 PDFDocument 中獲取 PDFOutline
遍歷 outline 孩子節(jié)點(默認(rèn)只遍歷一層)
當(dāng)點擊節(jié)點時,判斷有無孩子節(jié)點,進(jìn)行當(dāng)前數(shù)組的新增或刪除。
這里搜索功能主要靠下述方法實現(xiàn)
調(diào)用此方法之前,首先需將 PDFDocument 設(shè)置代理,通過 PDFDocument 的代理進(jìn)行回調(diào)。獲取 PDFSelection 對象,
再根據(jù) selection 對象顯示搜索內(nèi)容。
調(diào)用下述方法即可對 PDFView 進(jìn)行縮放,
實現(xiàn)雙擊縮放或還原:
這里通過設(shè)置 pdfView 的 scaleFactor 屬性即可實現(xiàn), 注意 : scaleFactorForSizeToFit 屬性是當(dāng)前 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文檔進(jìn)行批注與修改,等有時間我會放在后面一起介紹。
ios怎么打開PDF文件。你可以在APP store商城搜索輕快PDF閱讀器,你看名字就知道這是個閱讀PDF文件的軟件。獲取安裝輕快PDF閱讀器,知道桌面上出現(xiàn)了PDF閱讀器的圖標(biāo)。
這就是輕快PDF閱讀器的圖標(biāo),直接運行軟件。你再去打開原先打不開的PDF文件,選擇其他方式打開,在選擇輕快PDF閱讀器來打開,那樣你的PDF文件就可以打開了!
UIPageViewController在iOS 5 SDK中首次引入,它使得開發(fā)者可以使用這個ViewController創(chuàng)建分頁視圖。在iOS 6中,這個類有了更新,支持滾動過渡效果。使用Page View,用戶可以方便的通過手勢在多個頁面之間導(dǎo)航。UIPageViewController并不僅僅用于引導(dǎo)頁,很多游戲,例如:憤怒的小鳥,就是用Page View來展示關(guān)卡選擇的頁面,還有有關(guān)書籍的應(yīng)用,用這個類來顯示書的頁面。example UIPageViewController是個高度可配置的類,你可以進(jìn)行如下配置: 分頁的方向——水平或垂直 翻頁的樣式——書卷翻頁或者滑動翻頁 書脊位置——只有書卷翻頁樣式有效 頁面間距——只有滑動翻頁樣式有效,用來定義頁面間距(inter-page spacing) 為了演示,我們會一起創(chuàng)建一個簡單的app。當(dāng)然,我們不會演示所有的UIPageViewController的配置細(xì)節(jié),我們會演示到使用滑動翻頁樣式來創(chuàng)建一個引導(dǎo)頁。不過別擔(dān)心,有了對UIPageViewController的基本理解,我相信你能夠去探索其他的特性。 開始吧! Demo一覽 我們要創(chuàng)建的Demo很簡單,它會顯示4個頁面來介紹app的UI。用戶可以在頁面之間滑動切換。在任何時候用戶點擊“Start again”按鈕會回到第一頁。你能在Snapguide或Airbnb等app中找到很多類似的引導(dǎo)頁,所以這個效果你應(yīng)該不陌生。創(chuàng)建項目 打開Xcode并創(chuàng)建一個Simple View Application項目。選擇Single View Application看起來有點奇怪,因為Xcode已經(jīng)提供了基于UIPageViewController的具有完整功能的Page-Based Application模板。但是,這個模板還是有一些復(fù)雜,把這個模板解釋清楚比重新開始一個項目要復(fù)雜的多。況且,從零開始一定會讓我們對UIPageViewController的使用有更好的掌握。好了,開始吧。下個頁面中輸入PageViewDemo作為項目名稱,在company identifier欄中填入com.appcoda,設(shè)備類型選擇iPhone。點擊下一步并創(chuàng)建項目。在Storyboard中創(chuàng)建Page View Controller 下一步,選擇Main.storyboard。通常,你會看到一個默認(rèn)的由Xcode生成的View Controller,先別管它,從Object Library拖出一個Page ViewController到Storyboard中。然后再拖出另一個View Controller。在這個項目中,第一個View Controller會作為根View Controller,承載Page View Controller。最后添加的View Controller會作為頁面的內(nèi)容。后文中,用“根VC”代表“第一個View Controller”,“內(nèi)容VC”代表“最后添加的View Controller”。 你可能會疑惑為什么只添加1個View Controller作為4頁的內(nèi)容,難道不應(yīng)該使用4個View Controller嗎?通過后面的演示你會發(fā)現(xiàn),引導(dǎo)頁都非常相似,通過復(fù)用這個View Controller顯然是更好的選擇。 下一步,給內(nèi)容VC和Page View Controller分別設(shè)置一個ID。你能在Identity Inspector面板方便地設(shè)置。將Page View Controller的ID設(shè)置為“PageViewController”,將內(nèi)容VC的ID設(shè)置為“PageContentController”。后面我們會在代碼中使用到這些ID。Page View Controller的默認(rèn)變換樣式是翻頁效果(Page Curl),這個效果比較適合書籍類應(yīng)用。引導(dǎo)頁中,使用滑動效果更合適,所以將transition style更改為Scroll?,F(xiàn)在來設(shè)計內(nèi)容vc的界面。拖出一個Image View和一個Label到Controller中。按照喜好更改字體和字號。但是你的View Controller應(yīng)該和下面截圖的樣子類似。對于那個默認(rèn)的View Controller,在底部添加一個“Start again”按鈕。
文章標(biāo)題:ios6開發(fā)pdf,ios5 ios6
標(biāo)題路徑:http://chinadenli.net/article40/dsdioho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、建站公司、網(wǎng)站排名、做網(wǎng)站、關(guān)鍵詞優(yōu)化、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)