前面一篇文章用1mins的时间体验了SDK的一个ReaderDemo,心痒痒的,好希望自己也可以做一个。要花多少时间?我们来试试。
下载申请的地址这里再提供下:
https://www.foxitsoftware.com/products/sdk/register.php?product=MobilePDFSDK
填完信息,邮件就会收到试用包的地址了。
开发环境
我的开发环境是Version 7.0.1 (7A1001) ,正常的Xcode 7.0以上就可以了。
其他的,做iOS开发必备的环境有就好,这里不多说了
第一步,新建工程:
File -> New -> Project…, 然后选择 iOS -> Application -> Single View Application
填写工程名名称(我这里用AmyTest),然后选择next:
选择一个目录存放测试工程,再然后点确定,工程就建好了,产生了如下目录:
第二步,导入SDK
选中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 <FoxitRDK/FSPDFObjC.h>
#import <FoxitRDK/FSPDFViewControl.h>
接着所有的代码都在了viewDidLoad里面啦(当然,实际开发肯定不能这么做,这里只是想用最简单的代码,看看SDK的庐山真面目)
首先当然是
初始化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:
用View Control 显示
代码如下:
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 <FoxitRDK/FSPDFObjC.h>
#import <FoxitRDK/FSPDFViewControl.h>
@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