在当今以移动为先的世界中,为企业和开发人员创建一个iOS应用程序是必不可少的。随着对PDF文档处理需求的增加,使用ComPDFKit这个强大的PDF软件开发工具包(SDK)来构建iOS PDF阅读器和编辑器可以让最终用户轻松查看和编辑PDF文档。
在本博客中,我们将首先探讨整合ComPDFKit PDF SDK和使用它构建iOS PDF阅读器所需的步骤。
开始使用ComPDFKit iOS PDF SDK
ComPDFKit是一个强大的PDF软件开发工具包(SDK)。使用几行Objective-C代码,将ComPDFKit PDF SDK嵌入到您的iOS应用程序中非常简单。只需几分钟,就可以开始使用。
以下几个部分介绍了所需的要求、安装包的结构,以及如何使用ComPDFKit PDF SDK在Objective-C中创建iOS PDF阅读器
所需环境
开发使用ComPDFKit PDF SDK的程序需要以下开发环境。如果您的开发环境较低,可能无法正常使用ComPDFKit PDF SDK。
设备系统要求iOS10.0及以后的系统
IDE的版本:Xcode12及以后。在本博客中,我们使用Xcode14.0.1来演示示例
目前暂不支持在苹果Silicon系列上运行模拟器
对于早期版本的Xcode(如Xcode 13),默认情况下可能会打开Bitcode选项,因此需要关闭才能进行运行。具体的操作步骤如下图所示:
iOS包结构
您可以通过联系我们来获取我们的PDF SDK安装包。下载并解压缩ComPDFKit PDF SDK for iOS的安装包,您将在SDK包中看到以下所有文件。
ComPDFKit.xcframework - 包括ComPDFKit 动态库(arm64_armv7,x86_64-模拟器)以及相关的头文件
PDFViewer - 包含iOS(Objective-C)样例的工程
PDFViewer-Swift - 包含iOS(Swift)样例的工程
api_reference_ios - API 引用
developer_guide_ios.pdf- Developer guide
release_note - 版本发布相关的信息
legal.txt** - 法律相关的信息
使用Objective-C创建iOS预览App
这一部分将通过逐步说明,帮助您快速入门使用ComPDFKit PDF SDK以在Objective-C中制作iOS应用程序。通过以下步骤,您将获得一个能够显示指定PDF文件内容的简单应用程序。在本文中,我们以Xcode 14.0.1作为示例。
创建一个全新的项目
- 打开Xcode,选择File -> New -> Project,然后选择iOS app,再点过击Next按钮
- 新项目需要设置如下几个选项:
-
输入产品的名字,例如:PDFViewer
-
选择并登录您要发布应用的苹果开发者账号。
-
输入组织的名称:(com.example.pdfviewer)
-
在面版上选择故事版
-
编程语言选择"Objective-C"
-
点击"Next"按钮
-
设置project的位置,然后点击创建
添加ComPDFKit的SDK包
-
在ComPDFKit PDF SDK的安装包中找到ComPDFKit.xcframework。它包含了所有支持的架构的二进制文件。
-
打开新创建的iOS项目,并在右侧面板中选择General 。然后找到Frameworks, Libraries, and Embedded Content 部分,将ComPDFKit.xcframework 直接拖放到该部分,并将Embed 选项设置为Embed & Sign。
-
使用快捷键"Command_B"编译项目。如果没有报错,说明配置正确,您可以继续进行下一步。如果报告了一些错误,您需要检查错误的原因。如果您无法确定错误,可以联系我们的技术团队来解决问题
添加License Key
-
将头文件ComPDFKit/ComPDFKit.h 导入到AppDelegate中。
-
按照下面的代码,并在
didFinishLaunchingWithOptions
方法中调用CPDFKit setLicenseKey:@"LICENSE_KEY" secret:@"LICENSE_SECRET"
方法。您需要用您获得的许可证替换LICENSE_KEY 和LICENSE_SECRET。
objective-c
#import <ComPDFKit/ComPDFKit.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
/*
// Set your license key here. ComPDFKit is commercial software.
// Each ComPDFKit license is bound to a specific app bundle id.
// Notice: This is a demo project, presenting completed ComPDFKit functions.
// The functions might be different based on the license you have purchased.
// Please check the functions you chose work fine in this demo project.
// BOOL tIsFeatureLocked = ![[CPDFKit sharedInstance] allowsFeature:CPDFKitFeatureSecurityWatermark];
*/
// [CPDFKit setLicenseKey:@"YOUR_LICENSE_KEY_GOES_HERE" secret:@"YOUR_LICENSE_SECRET_GOES_HERE"];
[CPDFKit setLicenseKey:@"" secret:@""];
NSString *tAnnotateAuther = CPDFKitShareConfig.annotationAuthor;
NSLog(@"CPDFKit Annotation Author: \t %@", tAnnotateAuther);
CPDFKitShareConfig.enableAnnotationNoRotate = YES;
return YES;
}
编译并运行项目。如果控制台输出了"version information"(版本信息),则表示许可证已成功设置。否则,请查看本博客末尾的"故障排除"部分或检查控制台中的错误日志,以快速确定并解决问题。
展示pdf文档
准备一个测试的PDF文件,将其拖放到新创建的 pdfView 项目中。通过这种方式,您可以使用 NSBundle
加载和预览本地的PDF文档。下面的图片展示了将名为"Online5"的PDF文档导入项目的示例。
- 准备一个测试的PDF文件,将其拖放到新创建的 pdfView 项目中。通过这种方式,您可以使用
NSBundle
加载和预览本地的PDF文档。下面的图片展示了将名为"Online5"的PDF文档导入项目的示例。
objective-c
NSString *pdfPath= [bunle pathForResource:@"Online5" ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:pdfPath];
CPDFDocument *document = [[[CPDFDocument alloc] initWithURL:url] autorelease];
CGRect rect = self.view.bounds;
CPDFView *pdfView = [[[CPDFView alloc] initWithFrame:rect] autorelease];
pdfView.document = document;
- 将创建的 CPDFView 添加到当前控制器的视图中。示例代码如下:
objective-c
[self.view addSubview:pdfView];
- 连接您的设备或模拟器,并使用快捷键"Command_R"运行应用程序。PDF文件将被打开并显示在屏幕上。
- 如果无法显示PDF内容,请检查创建的NSURL和"CPDFDocument"对象是否为空,或者创建的"CPDFView"的大小是否为零。它们不应该为空。
如果文件路径中包含特殊字符,您的NSURL将会为nil。请使用以下代码进行处理。
objective-c
[pdfPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
如果创建的CPDFView
的大小为零,按照以下代码调整pdfview
的大小。
objective-c
pdfview.frame = self.view.frame.bounds
所有代码如下所示:
objective-c
NSString *pdfPath= [bunle pathForResource:@"Online5" ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:pdfPath];
CPDFDocument *document = [[[CPDFDocument alloc] initWithURL:url] autorelease];
if (document.error && document.error.code != CPDFDocumentPasswordError) {
return;
}
// Initialize a CPDFView object with the size of the entire screen
CPDFView *pdfView = [[[CPDFView alloc] initWithFrame:self.view.bounds] autorelease];
// Set the document to display
pdfView.document = document;
// Add the pdfView to the root view
[self.view addSubview:pdfView];
问题排查
-
位码
即使所有配置都正确,仍可能出现编译错误。首先,请检查是否禁用了位码(bitcode)。在较旧的Xcode版本(如Xcode 13)中,默认情况下可能启用了位码选项。为了运行应用程序,需要将其设置为"否"。
-
License(许可证)
如果出现许可设置错误,请确保"通用设置"中的身份(Bundle ID)设置与您联系我们以获取许可时提供的Bundle ID匹配。如果出现已过期的许可消息,请联系ComPDFKit团队以获取最新的许可和密钥。
-
PDF无法展示
请检查我们传入的路径是否需要特殊编码,或者我们传入的本地路径是否存在
-
其他问题
如果在集成我们的ComPDFKit PDF SDK for iOS时遇到其他问题,请随时联系ComPDFKit团队
在当今以移动为先的世界中,为企业和开发人员创建一个iOS应用程序是必不可少的。随着对PDF文档处理需求的增加,使用ComPDFKit这个强大的PDF软件开发工具包(SDK)来构建iOS PDF阅读器和编辑器可以让最终用户轻松查看和编辑PDF文档。
在本博客中,我们将首先探讨整合ComPDFKit PDF SDK和使用它构建iOS PDF阅读器所需的步骤。
开始使用ComPDFKit iOS PDF SDK
ComPDFKit是一个强大的PDF软件开发工具包(SDK)。使用几行Objective-C代码,将ComPDFKit PDF SDK嵌入到您的iOS应用程序中非常简单。只需几分钟,就可以开始使用。
以下几个部分介绍了所需的要求、安装包的结构,以及如何使用ComPDFKit PDF SDK在Objective-C中创建iOS PDF阅读器
所需环境
开发使用ComPDFKit PDF SDK的程序需要以下开发环境。如果您的开发环境较低,可能无法正常使用ComPDFKit PDF SDK。
设备系统要求iOS10.0及以后的系统
IDE的版本:Xcode12及以后。在本博客中,我们使用Xcode14.0.1来演示示例
目前暂不支持在苹果Silicon系列上运行模拟器
对于早期版本的Xcode(如Xcode 13),默认情况下可能会打开Bitcode选项,因此需要关闭才能进行运行。具体的操作步骤如下图所示:
iOS包结构
您可以通过联系我们来获取我们的PDF SDK安装包。下载并解压缩ComPDFKit PDF SDK for iOS的安装包,您将在SDK包中看到以下所有文件。
ComPDFKit.xcframework - 包括ComPDFKit 动态库(arm64_armv7,x86_64-模拟器)以及相关的头文件
PDFViewer - 包含iOS(Objective-C)样例的工程
PDFViewer-Swift - 包含iOS(Swift)样例的工程
api_reference_ios - API 引用
developer_guide_ios.pdf- Developer guide
release_note - 版本发布相关的信息
legal.txt** - 法律相关的信息
使用Objective-C创建iOS预览App
这一部分将通过逐步说明,帮助您快速入门使用ComPDFKit PDF SDK以在Objective-C中制作iOS应用程序。通过以下步骤,您将获得一个能够显示指定PDF文件内容的简单应用程序。在本文中,我们以Xcode 14.0.1作为示例。
创建一个全新的项目
- 打开Xcode,选择File -> New -> Project,然后选择iOS app,再点过击Next按钮
- 新项目需要设置如下几个选项:
-
输入产品的名字,例如:PDFViewer
-
选择并登录您要发布应用的苹果开发者账号。
-
输入组织的名称:(com.example.pdfviewer)
-
在面版上选择故事版
-
编程语言选择"Objective-C"
-
点击"Next"按钮
-
设置project的位置,然后点击创建
添加ComPDFKit的SDK包
-
在ComPDFKit PDF SDK的安装包中找到ComPDFKit.xcframework。它包含了所有支持的架构的二进制文件。
-
打开新创建的iOS项目,并在右侧面板中选择General 。然后找到Frameworks, Libraries, and Embedded Content 部分,将ComPDFKit.xcframework 直接拖放到该部分,并将Embed 选项设置为Embed & Sign。
-
使用快捷键"Command_B"编译项目。如果没有报错,说明配置正确,您可以继续进行下一步。如果报告了一些错误,您需要检查错误的原因。如果您无法确定错误,可以联系我们的技术团队来解决问题
添加License Key
-
将头文件ComPDFKit/ComPDFKit.h 导入到AppDelegate中。
-
按照下面的代码,并在
didFinishLaunchingWithOptions
方法中调用CPDFKit setLicenseKey:@"LICENSE_KEY" secret:@"LICENSE_SECRET"
方法。您需要用您获得的许可证替换LICENSE_KEY 和LICENSE_SECRET。
objective-c
#import <ComPDFKit/ComPDFKit.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
/*
// Set your license key here. ComPDFKit is commercial software.
// Each ComPDFKit license is bound to a specific app bundle id.
// Notice: This is a demo project, presenting completed ComPDFKit functions.
// The functions might be different based on the license you have purchased.
// Please check the functions you chose work fine in this demo project.
// BOOL tIsFeatureLocked = ![[CPDFKit sharedInstance] allowsFeature:CPDFKitFeatureSecurityWatermark];
*/
// [CPDFKit setLicenseKey:@"YOUR_LICENSE_KEY_GOES_HERE" secret:@"YOUR_LICENSE_SECRET_GOES_HERE"];
[CPDFKit setLicenseKey:@"" secret:@""];
NSString *tAnnotateAuther = CPDFKitShareConfig.annotationAuthor;
NSLog(@"CPDFKit Annotation Author: \t %@", tAnnotateAuther);
CPDFKitShareConfig.enableAnnotationNoRotate = YES;
return YES;
}
编译并运行项目。如果控制台输出了"version information"(版本信息),则表示许可证已成功设置。否则,请查看本博客末尾的"故障排除"部分或检查控制台中的错误日志,以快速确定并解决问题。
展示pdf文档
准备一个测试的PDF文件,将其拖放到新创建的 pdfView 项目中。通过这种方式,您可以使用 NSBundle
加载和预览本地的PDF文档。下面的图片展示了将名为"Online5"的PDF文档导入项目的示例。
- 准备一个测试的PDF文件,将其拖放到新创建的 pdfView 项目中。通过这种方式,您可以使用
NSBundle
加载和预览本地的PDF文档。下面的图片展示了将名为"Online5"的PDF文档导入项目的示例。
objective-c
NSString *pdfPath= [bunle pathForResource:@"Online5" ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:pdfPath];
CPDFDocument *document = [[[CPDFDocument alloc] initWithURL:url] autorelease];
CGRect rect = self.view.bounds;
CPDFView *pdfView = [[[CPDFView alloc] initWithFrame:rect] autorelease];
pdfView.document = document;
- 将创建的 CPDFView 添加到当前控制器的视图中。示例代码如下:
objective-c
[self.view addSubview:pdfView];
- 连接您的设备或模拟器,并使用快捷键"Command_R"运行应用程序。PDF文件将被打开并显示在屏幕上。
- 如果无法显示PDF内容,请检查创建的NSURL和"CPDFDocument"对象是否为空,或者创建的"CPDFView"的大小是否为零。它们不应该为空。
如果文件路径中包含特殊字符,您的NSURL将会为nil。请使用以下代码进行处理。
objective-c
[pdfPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
如果创建的CPDFView
的大小为零,按照以下代码调整pdfview
的大小。
objective-c
pdfview.frame = self.view.frame.bounds
所有代码如下所示:
objective-c
NSString *pdfPath= [bunle pathForResource:@"Online5" ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:pdfPath];
CPDFDocument *document = [[[CPDFDocument alloc] initWithURL:url] autorelease];
if (document.error && document.error.code != CPDFDocumentPasswordError) {
return;
}
// Initialize a CPDFView object with the size of the entire screen
CPDFView *pdfView = [[[CPDFView alloc] initWithFrame:self.view.bounds] autorelease];
// Set the document to display
pdfView.document = document;
// Add the pdfView to the root view
[self.view addSubview:pdfView];
问题排查
-
位码
即使所有配置都正确,仍可能出现编译错误。首先,请检查是否禁用了位码(bitcode)。在较旧的Xcode版本(如Xcode 13)中,默认情况下可能启用了位码选项。为了运行应用程序,需要将其设置为"否"。
-
License(许可证)
如果出现许可设置错误,请确保"通用设置"中的身份(Bundle ID)设置与您联系我们以获取许可时提供的Bundle ID匹配。如果出现已过期的许可消息,请联系ComPDFKit团队以获取最新的许可和密钥。
-
PDF无法展示
请检查我们传入的路径是否需要特殊编码,或者我们传入的本地路径是否存在
-
其他问题
如果在集成我们的ComPDFKit PDF SDK for iOS时遇到其他问题,请随时联系ComPDFKit团队