Customize ToolManager
You will need to use ToolManager for PDF interaction tools to work. You can build it easily using ToolManagerBuilder, a helper class for configuring and creating ToolManager. It also sets ToolManager to a specific PDFViewCtrl.
Build a default ToolManager
To build a default ToolManager, use ToolManagerBuilder and pass in an instance of PDFViewCtrl:
ToolManager mToolManager = ToolManagerBuilder.from()
.build(getActivity(), pdfViewCtrl);val mToolManager = ToolManagerBuilder.from()
.build(getActivity(), pdfViewCtrl)Build a custom ToolManager programmatically
You can customize the ToolManager programmatically with ToolManagerBuilder:
ToolManager mToolManager = ToolManagerBuilder.from()
.setEditInk(true)
.setOpenToolbar(true)
.setBuildInPageIndicator(false)
.setCopyAnnot(true)
.disableToolModes(new ToolManager.ToolMode[]{
ToolManager.ToolMode.TEXT_ANNOT_CREATE,
ToolManager.ToolMode.TEXT_CREATE,
ToolManager.ToolMode.TEXT_SQUIGGLY,
ToolManager.ToolMode.INK_ERASER,
ToolManager.ToolMode.FORM_CHECKBOX_CREATE,
ToolManager.ToolMode.RECT_CREATE,
ToolManager.ToolMode.TEXT_LINK_CREATE
})
.build(getActivity(), pdfViewCtrl);val mToolManager = ToolManagerBuilder.from()
.setEditInk(true)
.setOpenToolbar(true)
.setBuildInPageIndicator(false)
.setCopyAnnot(true)
.disableToolModes(
arrayOf(
ToolManager.ToolMode.TEXT_ANNOT_CREATE,
ToolManager.ToolMode.TEXT_CREATE,
ToolManager.ToolMode.TEXT_SQUIGGLY,
ToolManager.ToolMode.INK_ERASER,
ToolManager.ToolMode.FORM_CHECKBOX_CREATE,
ToolManager.ToolMode.RECT_CREATE,
ToolManager.ToolMode.TEXT_LINK_CREATE
)
)
.build(getActivity(), pdfViewCtrl)Supporting image stamp and image signatures
Image stamps and image signatures require a source image in order to create the annotation. If you are using PDFViewCtrl with ToolManager, will need to handle this manually in your app by implementing the methods ToolManager.AdvancedAnnotationListener.imageStamperSelected(PointF) and ToolManager.AdvancedAnnotationListener.imageSignatureSelected(PointF, int, Long).
For reference you can check out our PDFViewCtrl integration guide here
Build a custom ToolManager with style
You can also customize the ToolManager by defining an Android style resource and passing it to ToolManagerBuilder:
Create a custom style in your
res/values/styles.xmlfile:For additional customization, a list of supported style attributes are defined in this table.
In the previous step,
@array/disable_tool_modesis a string array defining tool modes that should be disabled. You can define it inres/values/arrays.xml:Each<item>in the array needs to be a string matching one of the enum values fromToolManager.ToolMode.
Lastly, build the
ToolManagerusingToolManagerBuilderand pass in your custom style and an instance ofPDFViewCtrl:Alternatively, you can pass theToolManagerstyle resource directly toViewerConfig.Builder. You can learn more about configuringToolManagerwithViewerConfigin the viewer configuration guides.
XML style attributes
edit_ink_annots
Controls whether editing ink annotations is allowed (only works if annotation toolbar is present) Default value: false
Format: boolean
open_toolbar_on_pan_ink_selected
Whether annotation toolbar should open when Ink is selected from quick menu (only works if annotation toolbar is present) Default value: false
Format: boolean
build_in_page_number_indicator
Whether to use/show the built-in page number indicator Default value: true
Format: boolean
annot_permission_check
Whether to check annotation author's permission Default value: false
Format: boolean
show_author_dialog
Whether to show author dialog the first time the user annotates Default value: false
Format: boolean
copy_annotated_text_to_note
Whether to copy marked-up text of TextMarkup annot to annotation's 'content' property upon TextMarkup annotation creation Default value: false
Format: boolean
stylus_as_pen
Whether to enable using stylus to draw without having to enter ink tool Default value: false
Format: boolean
ink_smoothing_enabled
Whether to smooth ink annotations Default value: true
Format: boolean
auto_select_annotation
Whether to auto-select annotations after they are created Default value: true
Format: boolean
quick_menu_disable
Whether disable showing quick menu Default value: false
Format: boolean
double_tap_to_zoom
Whether double-tapping should zoom the viewer Default value: true
Format: boolean
auto_resize_freetext
Whether can auto resize free text bounding box when editing Default value: false
Format: boolean
realtime_annot_edit
Whether annotation editing is real time Default value: true
Format: boolean
edit_freetext_on_tap
Whether can edit freetext on tap Default value: false
Format: boolean
show_saved_signatures
Whether can show saved signatures in signature dialog Default value: true
Format: boolean
show_annot_indicator
Whether can show indicator for annotations with comments Default value: true
Format: boolean
disable_tool_modes
Array of tools to disable Default value: null
Format: reference
disable_annot_editing_by_types
Array of annotation types to disable editing Default value: null
Format: reference
Last updated
Was this helpful?