Foxit MobilePDF SDK是一款用于移动平台的快速开发包,专注于帮助开发人员将强大的Foxit PDF技术轻松地集成到他们的应用程序中。不知不觉,产品的版本已经到了6.0,近期刚刚发布,6.0有什么变化呢? 下面的内容将会告诉你如何用6.0版本快速创建一个PDF阅读器
最新的SDK可以到官网申请下载:
产品页面:https://developers.foxitsoftware.com/pdf-sdk/
申请下载的页面: https://developers.foxitsoftware.com/pdf-sdk/free-trial/
下面介绍如何用Foxit Mobile PDF SDK快速编写一个功能完整的Android Reader。
以Android Studio 3.0的英文版的IDE为例
创建一个新的Android Studio工程
打开Android Studio工程,选择File -> New -> New Project… 创建一个新工程,显示如下:
修改应用程序名字,以“PDFReader”为例, 点击下一步。
在“Target Android Devices ”面板,选择默认选项,点击下一步。如下:
在“Add an activity to Mobile ”面板,选择"Empty Activity",点击下一步,如下:
在“Customize the Activity ”面板,使用默认选项,点击Finish。
导入Foxit MobilePDF SDK所用的库
要正常使用Foxit Mobile SDK需要导入的文件,列表如下:
相关文件
|
存储路径
|
说明
|
---|---|---|
FoxitRDKUIExtensions.aar | foxit_mobile_pdf_sdk_android_en\libs | 由“foxit_mobile_pdf_sdk_android_en\libs\uiextensions_src”工程生成的UI实现文件 包含了“libs\FoxitRDK.jar ”文件及UI界面所需要的资源文件,例如:图片,字符串,布局信息等。 特别:如果想要对默认UI界面做修改,可以修改这个工程重新编译出一个文件。 |
foxit_mobile_pdf_sdk_android_en\libs\armeabi-v7a foxit_mobile_pdf_sdk_android_en\libs\arm64-v8a foxit_mobile_pdf_sdk_android_en\libs\x86 | FoxitRDK.jar所调用的关联的动态库。 可以根据工程需要添加。如果不清楚要用到哪个SO文件,可以把库全部加入到工程中。 |
1)把关联库添加到工程中,添加完后的工程如下:
2) 在app的"build.gradle"中添加"librdk.so"的引用
android {
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
repositories {
flatDir {
dirs 'libs'
}
}
3)在app的"build.gradle"中添加"FoxitRDKUIExtensions.aar"”的引用
dependencies {
compile (name:'FoxitRDKUIExtensions', ext:'aar')
implementation 'com.android.support:design:26.1.0'
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
代码中添加引用
1) 库导入导出的引用
import com.foxit.sdk.common.Library;
import com.foxit.sdk.common.PDFException;
static {
System.loadLibrary("rdk");
}
...
try {
Library.init("sn", "key");
} catch (PDFException e) {
e.printStackTrace();
return;
}
2)创建一个“UIExtensionsManager ”并设置到“PDFViewCtrl ”
a) 设置系统主题为"No Title" 模式并把窗口设置为全屏,否则内置的布局可能会受到影响。
参考代码:
import android.view.Window;
import android.view.WindowManager;
...
// Turn off the title at the top of the screen.
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
// Set the window to Fullscreen.
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
b)初始化“UIExtensionsManager ”并设置到“PDFViewCtrl ”里面
import com.foxit.uiextensions.UIExtensionsManager;
//...
private UIExtensionsManager uiExtensionsManager = null;
//...
uiExtensionsManager = new UIExtensionsManager(this.getApplicationContext(), pdfViewCtrl);
uiExtensionsManager.setAttachedActivity(this);
uiExtensionsManager.onCreate(this, pdfViewCtrl, savedInstanceState);
pdfViewCtrl.setUIExtensionsManager(uiExtensionsManager);
c) 打开渲染PDF文档,并设置content view。
参考代码:
import com.foxit.uiextensions.UIExtensionsManager;
...
String path = "/mnt/sdcard/input_files/Sample.pdf";
uiExtensionsManager.openDocument(path, null);
setContentView(uiExtensionsManager.getContentView());
d) 修改“AndroidManifest.xml ”
添加"<uses-permission android:name="android.permission.CAMERA"/>",给工程设置访问摄像头的权限
添加"android:configChanges="keyboardHidden|orientation|locale|layoutDirection|screenSize">",保证屏幕旋转的时候工程只会触发“onConfigurationChanged ”,如果不设置,电子签章模块会不能用。
添加”<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />”和
"<service android:name="com.foxit.uiextensions.modules.panzoom.floatwindow.service.FloatWindowService"/>",给工程设置浮动窗口权限。如果不设置,面板和放大缩小模块会不能用。
设置完后,执行工程就可以
执行效果如下
![](https://i-blog.csdnimg.cn/blog_migrate/2ac109080cbe0e57b5877561cb60e471.jpeg)