Document API
Options
An application developer can register options for the following in the App Kit SDK:
Property | Capability |
---|---|
Editing | Enable |
Save As | Enable |
Open In | Enable |
Sharing | Enable |
External Clipboard In | Enable |
External Clipboard Out | Enable |
Printing | Enable |
Launch External Url | Enable |
Form Filling | Enable |
Form Signing | Enable |
Redactions | Enable |
Full Screen | Enable |
Invert Content In Dark Mode | Enable |
To do so a developer should instantiate ConfigOptions
, set the required variables within that object, and then register it against the SODKLib
object.
The following code example disables editing on a document:
import com.artifex.solib.ConfigOptions
import com.artifex.solib.ArDkLib
fun setupConfigOptions() {
var configOptions:ConfigOptions = ConfigOptions()
configOptions.isEditingEnabled = false
ArDkLib.setAppConfigOptions(configOptions)
}
import com.artifex.solib.ConfigOptions;
import com.artifex.solib.SODKLib;
public void setupConfigOptions() {
ConfigOptions configOptions = new ConfigOptions();
configOptions.setEditingEnabled(false);
ArDkLib.setAppConfigOptions(configOptions);
}
Listeners
Document listeners should only be required when using the Custom UI as the application developer is responsible for providing their own UI to manage relevant document events.
Available document listeners are as follows:
Page Loaded
Called when pages are loaded.
Document Completed
Called when the document has completely loaded.
Password Required
Called when a password is required by the document.
On View Changed
Called when the scale, scroll, or selection in the document changes.
documentView.setDocumentListener(object : DocumentListener {
override fun onPageLoaded(p0: Int) {
}
override fun onDocCompleted() {
}
override fun onPasswordRequired() {
}
override fun onViewChanged(scale: Float,
scrollX: Int,
scrollY: Int,
selectionRect: Rect?) {
}
}
documentView.setDocumentListener(new DocumentListener() {
@Override
public void onPageLoaded(int pagesLoaded) {
}
@Override
public void onDocCompleted() {
}
@Override
public void onPasswordRequired() {
}
@Override
public void onViewChanged(float scale,
int scrollX,
int scrollY,
Rect selectionRect) {
}
});
On Update UI
Called when UI updates are invoked by DocumentView.
documentView.setOnUpdateUI { }
documentView.setOnUpdateUI(new Runnable() {
@Override
public void run() {
}
});
Page Change
Called on a page change event - i.e. when the document has scrolled or jumped to another page.
documentView.setPageChangeListener { pageNumber ->
}
documentView.setPageChangeListener(new DocumentView.ChangePageListener() {
@Override
public void onPage(int pageNumber) {
}
});
Full Screen Mode
A DocumentView
document has the ability to fill the screen and enter a uneditable mode for an optimal reading experience. It is the application developer’s responsibility to turn off the UI that they do not wish to see when this mode is invoked and to ensure that their DocumentView
instance fills the device screen. To turn desired UI back on again the DocumentView
instance will invoke the application developer’s closure method upon exiting full screen mode ( when the user taps the screen ).
findViewById<View>(R.id.fullScreenButton).setOnClickListener {
// hide this activity's UI
// put DocumentView in full screen mode
if (dv != null) {
dv.enterFullScreen {
// closure method to restore our UI upon exit
}
}
}
findViewById(R.id.fullScreenButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// hide this activity's UI
// put DocumentView in full screen mode
if (documentView != null) {
documentView.enterFullScreen(new Runnable() {
@Override
public void run() {
// closure method to restore our UI upon exit
}
});
}
}
});
Document Actions
Providing a Password
An application developer should provide a way to enter a password for a document and then provide it to the document view as follows:
documentView.providePassword("my-password")
documentView.providePassword("my-password");
Undo
To undo a previous action (such as adding an annotation) use the the following method against your document instance.
if (documentView.canUndo()) {
documentView.undo()
}
if (documentView.canUndo()) {
documentView.undo();
}
Redo
To redo a previous action (such as adding an annotation) use the the following method against your document instance.
if (documentView.canRedo()) {
documentView.redo()
}
if (documentView.canRedo()) {
documentView.redo();
}
Get Selected Text
To get the selected text from a document an application developer should request the selectedText
property against the DocumentView
instance.
val selectedText:String? = documentView.selectedText
String selectedText = documentView.getSelectedText();
Note
If there is no selected text in the document then a null
value will be returned.
Can Select
To query whether you are able to select objects in a document ( i.e. if the document is in read-only mode or not ) then use the following:
val canSelect:Boolean = documentView.canSelect()
Boolean canSelect = documentView.canSelect();
This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of that license. Refer to licensing information at artifex.com or contact Artifex Software Inc., 39 Mesa Street, Suite 108A, San Francisco CA 94129, United States for further information.