Skip to content

UI and View Settings

This guide summarizes common view and interaction settings for UI Extensions: highlights, night mode colors, localization, RTL reading direction, read-only mode, and handwriting recognition.

UI Extensions enables link highlight by default. Disable or change color via configuration or API (v6.3+).

JSON Configuration

In uiextensions_config.json under uiSettings:

json
{
  "uiSettings": {
    "highlightLink": false,
    "highlightLinkColor": "#16007000"
  }
}

API

java
uiExtensionsManager.enableLinkHighlight(false);
uiExtensionsManager.setLinkHighlightColor(0x4b0000ff);

Form Highlight and Color

Form highlight is on by default. Disable or change color via configuration or API (v6.3+).

JSON Configuration

json
{
  "uiSettings": {
    "highlightForm": false,
    "highlightFormColor": "#2000ffcc"
  }
}

API

java
uiExtensionsManager.enableFormHighlight(false);
uiExtensionsManager.setFormHighlightColor(0x4b0000ff);

Night Mode (Mapping Mode)

Set mapping foreground/background and apply with setColorMode():

  • PDFViewCtrl.setMappingModeBackgroundColor(int)
  • PDFViewCtrl.setMappingModeForegroundColor(int)
  • PDFViewCtrl.setColorMode(int)

Important

If ColorMode is already Renderer.e_ColorModeMapping or Renderer.e_ColorModeMappingGray, call setColorMode() again after changing mapping colors.

With uiextensions_src, you can adjust colors in com.foxit.uiextensions.pdfreader.impl.MainFrame.java onValueChanged().

Read-Only Mode (Disable Editing)

java
mUiExtensionsManager.enableModification(false);

Notify Document Modified (setDocModified)

When UI Extensions changes the document, notify the SDK:

java
uiExtensionsManager.getDocumentManager().setDocModified(true);

Enable Handwriting (Ink) Recognition

Handwriting recognition is off by default. Since v9.1, enable in configuration:

json
"uiSettings": {
  "enableHandwritingRecognition": true
}

Add the dependency in your app:

kotlin
implementation 'com.google.mlkit:digital-ink-recognition:18.1.0'

RTL Reading: Page Binding

For RTL languages (Arabic, Hebrew, etc.), set the binding edge to the right:

java
pdfViewerCtrl.setPageBinding(PDFViewCtrl.RIGHT_EDGE);

Note

Page binding works best with horizontal scrolling; with vertical scrolling it applies mainly in two-page mode.

Localization

By default, UI Extensions follows the system language when supported.

For languages not built into the SDK:

  • Add translated strings to your project following SDK resource layout;
  • Change system language or call Localization.setCurrentLanguage().

Example — set UI to Japanese:

java
Locale locale = new Locale("ja", "JA");
Localization.setCurrentLanguage(this.getContext(), locale);