前面一篇文章用1mins的時間體驗了SDK的一個ReaderDemo,心癢癢的,好希望自己也可以做一個。要花多少時間?我們來試試。
我的開發環境是Version 7.0.1 (7A1001) ,正常的Xcode 7.0以上就可以了。
其他的,做iOS開發必備的環境有就好,這裡不多說了
File->New->Project…, 然後選擇iOS->Application->Single View Application
填寫工程名名稱(我這裡用AmyTest),然後選擇next:
選擇一個目錄存放測試工程,再然後點確定,工程就建好了,產生了如下目錄:
選中AmyTest工程,右鍵選擇菜單中的”Add Files to “AmyTest”
接著,選擇SDK包中的 libs目錄下的“FoxitRDK.framework“點擊Add:
這樣SDK就被加入到工程裡面來了如下圖:
沒完,接著選中工程找到General下的Embedded Binaries,然後點”+”把 ”FoxitRDK.framework” 加入進來:
加入後效果如下圖:
接著,我想為這個測試工程增加一個PDF文件,用發布包中的Getting_started_ios.pdf吧,依然是選中AmyTest工程,右鍵選擇菜單中的”Add Files to “AmyTest”,然後選擇文件加入,完成後工程長這樣:
好了,工程配置好了,現在要做的是:
我現在要顯示剛剛加入工程的”Getting_started_ios.pdf”:
我把所有的代碼都寫在“ViewController.mm”這個文件裡面
首先,SDK的頭文件導入工程:
#import#import
接著所有的代碼都在了viewDidLoad裡面啦(當然,實際開發肯定不能這麼做,這裡只是想用最簡單的代碼,看看SDK的廬山真面目)
首先當然是
代碼如下:
NSString* sn = @"***"; NSString* unlock = @"***"; [FSLibrary init:sn key:unlock];
sn 和unlock太長了,就用*來表示,來源key文件,自己找吧,或者從Demo中copy
接下來就是
//load doc NSString* docPath= [[NSBundle mainBundle] pathForResource:@"getting_started_ios" ofType:@"pdf"]; FSPDFDoc* doc = [FSPDFDoc createFromFilePath:docPath]; [doc load:nil];
然後就是創建一個FSPDFViewCtrl把剛剛創建的文檔用viewer Control顯示,並且把這個viewer control加入當前的subview:
代碼如下:
FSPDFViewCtrl* myTestViewCtrl; myTestViewCtrl = [[FSPDFViewCtrl alloc] initWithFrame:[self.view bounds]]; [myTestViewCtrl setDoc:doc]; [self.view addSubview:myTestViewCtrl];
算了下,上面也就10行代碼,實現了基礎的閱讀。
當然這樣的測試程序是不完整的。
所有創建的對象都要記得在合適的地方釋放哦!這個是常識,就不多說了。期待後面的高級篇。
這裡只是為了看看實現的效果,哈,這樣的步驟下來,5分鐘夠啦!
最後附上我小修改之後的“ViewController.mm”文件
// // ViewController.m // AmyTest // // Created by Amy Lin on 16/10/12. // Copyright © 2016年 Amy Lin. All rights reserved. // #import "ViewController.h" #import#import @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //Init the library NSString* sn = @"Z+TAUcB72RW3BpJhSuFwt4duXz45VnpH/k0ZpQf87VHDH2mwbhOAiA=="; NSString* unlock = @"ezJvj93HtBp39Js1IV0+hIFmZYgzODNkY83TGH/zlPjyJM0Tvptvu+DXH+cnECJXQZAYWWkEyEB3Sykko0KyjhpZcGmxhSBGs5qb5QKFdhM0fAf8FTiEbPUU03fiQtatGQ2FFjarrtLnw39+8euQGdXpRMjwiuS77C05P+co/cxBJ003q+JDAcOjHhxSTccwKfAr6Oa1DRgElhigJBJgHhaluzC6Yw0XHhiMsOsLdf42hkMJGPfI/tU6UsAU1vEr/UJP28iTZ652ItqqNtknKCpNWseaiNeCJ88fV2Mjddqf9dLx80oV22mUAvPhuIGQ5zBZJSAivwVRaW4kJvIhLmgswUv3N/eBKaaDCMn0fxPy+QVs+307hkdla1AswpalMpbvX1YM8O8YMbnAKjrEQOJFc7etKML3fHi8+zAdujq/c3KKx2McE1Nq9+1k+3datd2xg4yh6Zfg4Utxbaq1AEto0I2baW7R18hO/Ud9a0dUbgIya6wy3dP146COck9Ul7niCaOeWpbCjuUZOMXwgctpw5Aq/Rc0mNO5k9amibFBb/Qw8ioopvI5U1Uyk+F9jIFYHSPWkk7+PdfU7iZYKI+aCCbRKGNsX1B2+FD8Z7+TVkcrpzjF1yKvCjKOBkGvB7QHvitjS/mQNHrudTIQdUG2z1bHqVtWRbjHFqkaaVhSQ6z2oHRwDprnq0fQJFr5W+vRfMJ8MA9LBJiEoGunUE7lpiI9VGMlCKVxMHHLDBFJY9eBObYLgwwSxVLoTkOCuQm+B3TtptUq9I7R0gmrx+KAL79q2laOkgxafEKqKl33xXr32CshTvSpIH1CfxBE2IxxUFwNOLU4oNBrh0R2y2KHy7cx74zkPxjTF13FZmV9mdhW+fc985JOFYkHplwMMfXcitLAMTrZFWhUS3i8sp8KcsMufM8PQSZC/ivCnJuuz1ZRV90FZdoaKHw5Aws43PAuDiBWx/hHtpdpQcZv+6ZmuojxfWecXe4zLAEi2zaBRIv1jccNJruh+Oczo+nXTIiZH4H2BW7ZnqRxYhqMYyDEylItVdlKqsG9HJ1cVVNLn+6d53+OtZIsQU2qRCGtdRjgJK67VACVtgQkgk8PUPMB6Mn8UZnBdytrPWvuJzrC8VZ5Zit5vF7u81x/vpBa7yg6AkTlPXjYSazJah3QCSlDfW1laT/dCto1Dqyojnx35DhrElfHx4os9dNH1zc="; enum FS_ERRORCODE eRet = [FSLibrary init:sn key:unlock]; if (e_errSuccess != eRet) { return; } //load doc NSString* docPath= [[NSBundle mainBundle] pathForResource:@"getting_started_ios" ofType:@"pdf"]; FSPDFDoc* doc = [FSPDFDoc createFromFilePath:docPath]; if (e_errSuccess!=[doc load:nil]) { return; } //init PDFViewerCtrl FSPDFViewCtrl* myTestViewCtrl; myTestViewCtrl = [[FSPDFViewCtrl alloc] initWithFrame:[self.view bounds]]; [myTestViewCtrl setDoc:doc]; [self.view addSubview:myTestViewCtrl]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end