iOS讀取和顯示PDF文件

2021-06-26 12:09:14 字數 1427 閱讀 2828

本文只說明自定義uiview的方法。實現的在ipad模擬器上的效果:

的**部分:

void mydisplaypdfpage (cgcontextref mycontext, 

size_t pagenumber, 

const char *filename) 

可見,編寫讀取的**很簡單,只需給定三個引數即可。後兩個很容易,pagenumber是int型的數字,表示第幾頁,filename是肯定知道的。問題是如何獲取cgcontextref,這個型別物件是用於繪圖的上下文物件引用,沒有它就沒法繪製到螢幕介面上。

查了一下文件,特別是這個帖子:

看來要繼承uiview,才能得到當前檢視的context。基本思路是覆蓋uiview的drawrect方法,在該方法中:

- (void)drawrect:(cgrect)rect

呼叫uigraphicsgetcurrentcontext方法,將當前的圖形上下文設定給呼叫pdf的**。drawrect方法會在ios系統繪製介面的時候呼叫。

以下不再用ib了,pdf的uiview是通過程式生成的。

建立pdfview類,是uiview的子類。標頭檔案:

#import

@inte***ce pdfview : uiview

-(void)drawincontext:(cgcontextref)context;

@end

裡面帶乙個成員,pdf,代表pdf文件物件的引用。乙個方法,用於根據圖形上下文在檢視中繪製制定的pdf頁面。

m檔案:

#import "pdfview.h"

@implementation pdfview 

- (id)initwithframe:(cgrect)frame 

} return self; 

}- (void)drawrect:(cgrect)rect

在這裡使用的pdf文件,是放在專案的resources目錄下的。

再往下,就是在controller中通過程式建立pdfview例項,並將它關聯為controller根檢視的子檢視:

- (void)viewdidload

這裡因為是使用ipad,因此長寬是1000(上面留點空間)和768。另外,需要設定底色,預設情況下底色是黑色的,和黑體的文字在一起就顯示不出文字了,我設定的是白色:

pdfview.backgroundcolor=[uicolor whitecolor];

這樣就可以了,而且中文啥的都沒問題。

iOS讀取和顯示PDF文件

本文只說明自定義uiview的方法。實現的在ipad模擬器上的效果 的 部分 void mydisplaypdfpage cgcontextref mycontext,size t pagenumber,const char filename 可見,編寫讀取的 很簡單,只需給定三個引數即可。後兩個很...

iOS讀取和顯示PDF文件

1在ios主要用webview來顯示混合文字 word excel ppt 今天我們就來了解webview顯示pdf的用法 使用pdf讀取pdf的缺點是自定義的能力較弱,優點是簡單就像讀取網頁一樣 新建乙個 pdfview import inte ce pdfview uiview void dra...

讀取PDF文件

coding utf 8 匯入開發包 frompdfminer.pdfparserimportpdfparser,pdfdocument frompdfminer.pdfinterpimportpdfresourcemanager,pdfpageinterpreter frompdfminer.pd...