赞
踩
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工程,选择File -> New -> New Project… 创建一个新工程,显示如下:
修改应用程序名字,以“PDFReader”为例, 点击下一步。
在“Target Android Devices ”面板,选择默认选项,点击下一步。如下:
在“Add an activity to Mobile ”面板,选择"Empty Activity",点击下一步,如下:
在“Customize the Activity ”面板,使用默认选项,点击Finish。
要正常使用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"/>",给工程设置浮动窗口权限。如果不设置,面板和放大缩小模块会不能用。
设置完后,执行工程就可以
执行效果如下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。