Skip to content
ComPDF
Guides

Mode Config

ModeConfig controls the document interface's initial mode, available modes list, and UI visibility behavior.

Configuration Fields

FieldTypeDefaultDescription
initialViewModeString"viewer"The initial mode when opening a document
availableViewModesString[]All 5 modesModes the user can switch between
uiVisibilityModeString"automatic"UI visibility strategy

Initial View Mode

initialViewMode determines the default mode when a document is opened:

ValueDescription
viewerViewer mode (default)
annotationsAnnotation mode
contentEditorContent editor mode
formsForm mode
signaturesSignature mode
json
{
  "modeConfig": {
    "initialViewMode": "viewer"
  }
}

Available View Modes

availableViewModes controls which modes appear in the bottom mode switching bar. Modes not in the list will be unavailable to the user:

json
{
  "modeConfig": {
    "availableViewModes": [
      "viewer",
      "annotations",
      "contentEditor",
      "forms",
      "signatures"
    ]
  }
}

If you only need viewer and annotation features:

json
{
  "modeConfig": {
    "initialViewMode": "viewer",
    "availableViewModes": [
      "viewer",
      "annotations"
    ]
  }
}

UI Visibility Mode

uiVisibilityMode controls the display strategy for top/bottom toolbars:

ValueDescription
automaticAuto mode — tap the PDF page to toggle fullscreen state (default)
alwaysAlways show top and bottom toolbars
neverAlways hide top and bottom toolbars
json
{
  "modeConfig": {
    "uiVisibilityMode": "automatic"
  }
}

Full Example

json
{
  "modeConfig": {
    "initialViewMode": "viewer",
    "uiVisibilityMode": "automatic",
    "availableViewModes": [
      "viewer",
      "annotations",
      "contentEditor",
      "forms",
      "signatures"
    ]
  }
}

Code Example

java
CPDFConfiguration configuration = CPDFConfigurationUtils.normalConfig(
    context, "tools_default_configuration.json");

// Set initial mode to annotation
configuration.modeConfig.initialViewMode = CPreviewMode.Annotation;

// Only keep viewer and annotation modes
configuration.modeConfig.availableViewModes = Arrays.asList(
    CPreviewMode.Viewer,
    CPreviewMode.Annotation
);

// Set toolbar to always visible
configuration.modeConfig.uiVisibilityMode = CPDFUIVisibilityMode.ALWAYS;
kotlin
val configuration = CPDFConfigurationUtils.normalConfig(
    context, "tools_default_configuration.json")

configuration.modeConfig.initialViewMode = CPreviewMode.Annotation
configuration.modeConfig.availableViewModes = listOf(
    CPreviewMode.Viewer,
    CPreviewMode.Annotation
)
configuration.modeConfig.uiVisibilityMode = CPDFUIVisibilityMode.ALWAYS