This plugin adds the ability to easily preview any PDF file in your Cordova application
- Installation
- Integration for iOS
- Integration for Android
- How to use this plugin for cordova developer
- JS API Reference
- Supported Platforms
- Quick Example
- Attention
- Versions
- Demo manual
cordova plugin add cordova-plugin-foxitpdfIt is also possible to install via repo url directly ( unstable )
cordova plugin add https://github.com/foxitsoftware/cordova-plugin-foxitpdf.gitLarge files in the plugin may cause your update to fail. If that is the case, please try again following the steps below:
- Clone this project
- Add plugin from local using this command :
cordova plugin add ~/xxx/cordova-plugin-foxitpdf (This address is replaced by your own)The iOS version of the cordova plugin only needs a few simple steps to deploy
- Unzip Foxit PDF SDK for iOS and copy libs folder into the component’s ios folder.
(
/xxx/platforms/ios/)
Please use foxitpdfsdk_(version_no)_ios.zip from https://developers.foxitsoftware.com/pdf-sdk/ios/
-
Target -> General -> Embedded Binaries Add dynamic framework "FoxitRDK.framework" and "uiextensionsDynamic.framework" to Xcode’s Embedded Binaries
-
Target -> General -> Linked Frameworks and Libraries -> + -> WebKit.framework
NoteDo not forget to add pdf files You can add the PDF to Copy Bundle Resources directly. Just left-click the project, find 'Copy Bundle Resources' in the 'Build Phases' tab, click on the + button, and choose the file to add. You can refer to any PDF file, just add it to the Xcode’s Copy Bundle Resources. Or,you can use the pdf file under Document directory in sandbox
Now that the preparatory work has been completed,you can use this plugin everywhere in your project.
-
Download
foxitpdfsdk_(version_no)_android.zipfrom https://developers.foxitsoftware.com/pdf-sdk/android/ (Please use Foxit PDF SDK for Android 6.4.0) -
Unzip
foxitpdfsdk_(version_no)_android.zipand copy libs folder into the component’s android folder./xxx/platforms/android/
- Initialize
var sn = 'foxit_sn';
var key = 'foxit_key';
window.FoxitPdf.initialize(sn,key);
- Open Pdf File
var path = 'Your file path';
var password = 'password'; // If the PDF document is not encrypted by password, just pass an empty string.
window.FoxitPdf.openDocument(path, password);window.FoxitPdf.initialize(sn,key);
-
options: Initialization options.
-
foxit_sn: the
foxit_snstring -
foxit_key: the
foxit_keystring
foxit_sn and foxit_key are required, otherwise the initialization will fail. rdk_key and rdk_sn can be found in the libs folder of foxitpdfsdk_(version_no)_ios.zip.
var sn = 'foxit_sn';
var key = 'foxit_key';
window.FoxitPdf.initialize(sn,key);window.FoxitPdf.enableAnnotations(enable);
- enable: A boolean value whether to enable or disable annotation modules.
Note: To make it work, this function should be called before opening a document.
var enable = false;
window.FoxitPdf.enableAnnotations(enable);window.FoxitPdf.openDocument(path, password);
- path: Document path you wish to open
- password: The password used to load the PDF document content. It can be either user password or owner password. If the PDF document is not encrypted by password, just pass an empty string.
Note: The document can only be opened if the initialization is successful.
var path = 'Your file path';
var password = 'password'; // If the PDF document is not encrypted by password, just pass an empty string.
window.FoxitPdf.openDocument(path, password);window.FoxitPdf.setSavePath(savePath);
- savePath: Document path that prevents overwriting on the preview file (if set)
var savePath = 'Your file path';// Document path that prevents overwriting on the preview file _(if set)_
window.FoxitPdf.setSavePath(savePath);window.FoxitPdf.importFromFDF(fdf_doc_path, data_type, page_range);
fdf_doc_path: A valid fdf file path, from which form fields and annotations will be imported.data_type: Used to decide which kind of data will be imported. this can be one or a combination of as following values:
0x0001: Form fields are imported from or exported to FDF/XFDF document.0x0002: Annotations (except Movie, Widget, Screen, PrinterMark and TrapNet, link) are imported from or exported to FDF/XFDF document.0x0004: links are imported from or exported to XFDF document.Not supported right now
page_range: A integer range array that specifies some pages. Data (in specified types) from FDF/XFDF document will be imported to these specified pages range for importing. In this array, 2 numbers are a pair: the first integer is the starting page index, and the second integer is the page count. Default value: an empty range by default and not set any value.It only support annotations.
var fdf_doc_path = 'Your file path';// FDF file path
var data_type = 0x0002;
var page_range = [[0,1],[2,3]]//[[start1, count1], [start2, count2]....]
window.FoxitPdf.importFromFDF(fdf_doc_path, data_type, page_range);window.FoxitPdf.exportToFDF(export_path, data_type, fdf_doc_type, page_range);
export_path: A valid path to which form fields and annotations will be exported.data_type: Used to decide which kind of data will be imported. this can be one or a combination of as following values:
0x0001: Form fields are imported from or exported to FDF/XFDF document.0x0002: Annotations (except Movie, Widget, Screen, PrinterMark and TrapNet, link) are imported from or exported to FDF/XFDF document.0x0004: links are imported from or exported to XFDF document.Not supported right now
fdf_doc_type: FDF document type.0 means FDF, and 1 means XFDF.page_range: A integer range array that specifies some pages. Data (in specified types) from FDF/XFDF document will be imported to these specified pages range for importing. In this array, 2 numbers are a pair: the first integer is the starting page index, and the second integer is the page count. Default value: an empty range by default and not set any value.It only support annotations.
var fdf_doc_type = 0;
var export_path = '/Documents/annot_export.fdf';
var page_range = [[0,1],[2,3]]//[[start1, count1], [start2, count2]....]
var data_type = 0x0002;
window.FoxitPdf.exportToFDF(export_path, data_type, fdf_doc_type, page_range);window.FoxitPdf.addEventListener(eventname,callback);
-
eventname: The name of the event to listen for (String)
-
onDocWillSave: This event fires when the document will be saved.
-
onDocSaved: This event fires when the document is saved.
-
onDocOpened: This event fires when the document is Opened.
-
callback: This function is executed when the event fires. The function is passed an object as a parameter.
Add a listener for an event
window.FoxitPdf.addEventListener('onDocSaved',function(data){
console.log('onDocSaved callback ',data);
});
window.FoxitPdf.addEventListener('onDocOpened',function(data){
console.log('onDocOpened callback ',data);
});
Please see our forum for more detailed information:
PPTX - How to use cordova-plugin-foxitpdf
-
iOS
-
Android
- The first argument in the preview method currently only supports absolute paths for incoming files.
You can obtain the absolute path to the file using the method provided by the [cordova-plugin-file] (https://github.com/apache/cordova-plugin-file) plugin.
Use the following command to add the [cordova-plugin-file] (https://github.com/apache/cordova-plugin-file) plugin to your project
cordova plugin add cordova-plugin-file- Note: in some cases the resource folders are not added correctly and the number of items is the same because of XCode bug.(e.g. Xcode 8.3.3) In that case, remove the added reference from the project tree and add the Resource using the project tree - Add files to "YourProjectName". Remember to enable the option of "copy items if needed" and "create groups" when using this method.
If an error similar to the one in the following picture appears, try the method in step 2

A PDF file needs to be placed in the project beforehand. The location is in the project root by default
var filePathSaveTo = cordova.file.documentsDirectory + 'getting_started_ios_2.pdf'
window.FoxitPdf.setSavePath(filePathSaveTo);
var filePath cordova.file.applicationDirectory + 'getting_started_ios.pdf';
window.FoxitPdf.openDocument(filePath,'');
window.FoxitPdf.addEventListener('onDocOpened',function(data){
console.log('onDocOpened callback ',data);
console.log('onDocOpened callback info',data.info);
if (data.error == 0){
var data_type = 0x0002;
window.FoxitPdf.importFromFDF(cordova.file.documentsDirectory + 'Annot_all.fdf',data_type, [[0, 1]]);
}
});-
The product is still in its early stage of development. We will continue to focus on refining and improving this project.
-
If your cordova version is 7.0.0, you might encounter this problem: no such file or directory, open 'xxxx/platforms/android/AndroidManifest.xml' this is a cordova bug, and the solution is provided in the link below: https://cordova.apache.org/announcements/2017/12/04/cordova-android-7.0.0.html
However this a major breaking change for people creating standalone Cordova Android projects. This also means that the locations of files have changed and have been brought in line to the structure used by Android Studio. This may affect plugin.xml files and config.xml files that use edit-config, and make it so plugins that use edit-config will not be able to be compatible with both Android 6.x and Android 7.x. To fix this issue, please do the following in your XML files
You can ask us questions or report bugs in here.
You can also send email huang_niu@foxitsoftware.com to explain your problem.
If you have a better code implementation, please fork this project and launch your Pull-Request, we will promptly deal with. Thanks!
If you encounter “Invalid license” tips, please go to the following URL for official trial license key:


