Skip to content

UI 与视图设置

本文汇总 UI Extensions 场景下的常见视图与交互配置,包括高亮设置、夜间模式配色、本地化、RTL 阅读方向、只读模式,以及手写识别能力的启用方式等。

设置链接高亮及高亮颜色

UI Extensions 默认开启“链接高亮”。如需关闭或修改高亮颜色,可通过配置文件或 API 实现(仅支持 v6.3+)。

通过 JSON 配置

uiextensions_config.jsonuiSettings 中设置:

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

通过 API 调用

java
// 启用/禁用链接高亮
uiExtensionsManager.enableLinkHighlight(false);

// 设置高亮颜色
uiExtensionsManager.setLinkHighlightColor(0x4b0000ff);

设置表单高亮及高亮颜色

UI Extensions 默认开启“表单高亮”。如需关闭或修改高亮颜色,可通过配置文件或 API 实现(仅支持 v6.3+)。

通过 JSON 配置

uiextensions_config.jsonuiSettings 中设置:

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

通过 API 调用

java
// 启用/禁用表单高亮
uiExtensionsManager.enableFormHighlight(false);

// 设置高亮颜色
uiExtensionsManager.setFormHighlightColor(0x4b0000ff);

夜间模式颜色设置(映射模式)

可通过 API 设置映射模式的前景/背景色,并通过 setColorMode() 应用:

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

注意

若当前 ColorMode 已是 Renderer.e_ColorModeMapping / Renderer.e_ColorModeMappingGray,在修改映射色后仍需再次调用 setColorMode() 使配置生效。

若基于 UI Extensions 源码定制,可通过调整 com.foxit.uiextensions.pdfreader.impl.MainFrame.javaonValueChanged() 相关逻辑实现配色修改。

UI Extensions 只读模式(禁用修改)

若需禁用编辑相关交互,可通过 API 调用 UIExtensionsManager.enableModification(false) 实现:

java
mUiExtensionsManager.enableModification(false);

通知文档已修改(SetDocModified)

当通过 UI Extensions 修改了文档内容,需要通知上层 SDK 文档已变化时,可调用:

java
// 假设已初始化 UIExtensionsManager 对象
uiExtensionsManager.getDocumentManager().setDocModified(true);

启用手写(Ink)识别

UI Extensions 默认关闭手写识别。自 v9.1 起,可通过配置文件开启:

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

并在 Demo 层增加依赖以启用识别能力:

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

RTL 阅读方向:设置 Page Binding

从右到左语言(如阿拉伯语、希伯来语等)常需将装订边设置为右侧,使页面按 RTL 方式排列。

可通过 API 调用 PDFViewCtrl.setPageBinding() 在代码中更新装订边:

java
pdfViewerCtrl.setPageBinding(PDFViewCtrl.RIGHT_EDGE);

说明

Page Binding 与横向滚动配合使用效果更明显;纵向滚动时仅在开启双页模式时生效。

本地化(Localization)设置

默认情况下,UI Extensions 会根据系统语言自动切换 UI 语言(前提是对应语言已内置支持)。

如果需要使用 SDK 未内置的语言,可通过以下方式实现:

  • 将 UI 文案翻译后,按 SDK 资源目录结构放入工程资源中;
  • 通过修改系统语言或调用 Localization.setCurrentLanguage() 使其生效。

示例:将 UI 语言设置为日语:

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