如何使用Foxit Mobile SDK 6.0 快速创建一个PDF阅读器-Android篇

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.aarfoxit_mobile_pdf_sdk_android_en\libs

由“foxit_mobile_pdf_sdk_android_en\libs\uiextensions_src”工程生成的UI实现文件

包含了“libs\FoxitRDK.jar ”文件及UI界面所需要的资源文件,例如:图片,字符串,布局信息等。

特别:如果想要对默认UI界面做修改,可以修改这个工程重新编译出一个文件。

librdk.so

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"/>",给工程设置浮动窗口权限。如果不设置,面板和放大缩小模块会不能用。

设置完后,执行工程就可以

执行效果如下


©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页