電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
使用Quartz 2D讀取PDF文件

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> iOS 程式開發區
上一篇主題 :: 下一篇主題  
發表人 內容
CrazyBoy
稍嫌羞澀的路人


註冊時間: 2011-08-23
文章: 2

61.14 果凍幣

發表發表於: 2011-8-23, PM 6:58 星期二    文章主題: 使用Quartz 2D讀取PDF文件 引言回覆

先建立一個普通專案,然後添加一個UIScrollView(不會添加的話再問我),命名為PDFView.

PDFView.h
代碼:

@interface PDFView : UIScrollView {
 
   NSString *filePath;
   CGPDFDocumentRef pdfDocument;
   CGPDFPageRef page;
   int pageNumber;
}
 
@property (copy, nonatomic) NSString *filePath;
@property int pageNumber;
 
-(CGPDFDocumentRef)MyGetPDFDocumentRef;
-(void)reloadView;
-(IBAction)goUpPage:(id)sender;
-(IBAction)goDownPage:(id)sender;

@end


PDFView.m
代碼:

@implementation PDFView
@synthesize filePath,pageNumber;
 
- (void)drawRect:(CGRect)rect //只要是UIView都有的繪圖函數
{
   if(filePath == nil)  //如果沒初始化,就初始化
   {
      pageNumber = 10;   //定義頁數
      filePath = [[NSBundle mainBundle] pathForResource:@"zhaomu" ofType:@"pdf"];
      pdfDocument = [self MyGetPDFDocumentRef]; //從自定義getter得到文件索引
   }
 
   CGContextRef myContext = UIGraphicsGetCurrentContext();
 
   page = CGPDFDocumentGetPage(pdfDocument, pageNumber);
        //由頁碼+文檔得到頁碼索引
 
   CGContextDrawPDFPage(myContext, page);
        //繪製頁面
}
 
//此getter可以考慮照打... 都是CF函數,我看到就恶心...
- (CGPDFDocumentRef)MyGetPDFDocumentRef
{
   CFStringRef path;
   CFURLRef url;
   CGPDFDocumentRef document;
   path = CFStringCreateWithCString(NULL, [filePath UTF8String], kCFStringEncodingUTF8);
   url = CFURLCreateWithFileSystemPath(NULL, path, kCFURLPOSIXPathStyle, 0);
   CFRelease(path);
   document = CGPDFDocumentCreateWithURL(url);
   CFRelease(url);
   return document;
}
 
-(void)reloadView
{
   [self setNeedsDisplay]; //每次需要Refresh了,就call這個
}
 
-(IBAction)goUpPage:(id)sender
{
   pageNumber++;
 
   [self reloadView];
}

-(IBAction)goDownPage:(id)sender
{
   pageNumber--;
   [self reloadView];
}

@end



只是半成品,需要完成品的請自我研究。
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> iOS 程式開發區 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作