Skip to content
Guides

配置概述

ComPDFKit_Tools 通过 CPDFConfiguration 提供了一套完整的 JSON 驱动配置系统,可在不修改源码的情况下控制 UI 行为、功能开关和默认样式。

CPDFConfiguration 结构

CPDFConfiguration 是顶层配置类,包含以下 8 个子配置:

java
public class CPDFConfiguration implements Serializable {
    public ModeConfig modeConfig;              // 模式配置
    public ToolbarConfig toolbarConfig;        // 工具栏配置
    public AnnotationsConfig annotationsConfig;// 注释配置
    public ContentEditorConfig contentEditorConfig; // 内容编辑配置
    public FormsConfig formsConfig;            // 表单配置
    public ReaderViewConfig readerViewConfig;  // 阅读视图配置
    public GlobalConfig globalConfig;          // 全局配置
    public ContextMenuConfig contextMenuConfig;// 上下文菜单配置
}

各子配置的详细说明:

子配置说明详细文档
ModeConfig初始模式、可用模式列表、UI 可见性模式模式配置
ToolbarConfig工具栏显隐、菜单项、自定义按钮顶部工具栏
AnnotationsConfig可用注释类型、工具、默认属性注释工具栏
ContentEditorConfig可用编辑类型、工具、默认属性内容编辑
FormsConfig可用表单类型、工具、默认属性表单工具栏
ReaderViewConfig显示模式、主题、间距、缩放等阅读视图配置
GlobalConfig主题模式、保存行为、BOTA、搜索、水印等全局配置
ContextMenuConfig各对象的上下文菜单自定义上下文菜单

默认配置文件

SDK 内置了 tools_default_configuration.json 配置文件,位于 Tools 模块的 assets 目录中。该文件包含所有配置项的默认值。

完整内容可查看:tools_default_configuration.json

加载配置

使用 CPDFConfigurationUtils.normalConfig() 从 JSON 文件加载配置:

java
// 从 assets 中加载默认配置
CPDFConfiguration configuration = CPDFConfigurationUtils.normalConfig(
    context, "tools_default_configuration.json");
kotlin
val configuration = CPDFConfigurationUtils.normalConfig(
    context, "tools_default_configuration.json")

自定义配置

方式一:修改 JSON 文件

tools_default_configuration.json 复制到项目 assets 目录,直接修改 JSON 内容:

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

方式二:代码修改配置对象

加载配置后,通过代码修改特定字段:

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

// 修改初始模式为注释模式
configuration.modeConfig.initialViewMode = CPreviewMode.Annotation;

// 隐藏表单工具栏
configuration.toolbarConfig.formToolbarVisible = false;

// 设置高亮注释默认颜色
configuration.annotationsConfig.initAttribute.highlight.setColor("#FF0000");
configuration.annotationsConfig.initAttribute.highlight.setAlpha(128);
kotlin
val configuration = CPDFConfigurationUtils.normalConfig(
    context, "tools_default_configuration.json")

configuration.modeConfig.initialViewMode = CPreviewMode.Annotation
configuration.toolbarConfig.formToolbarVisible = false
configuration.annotationsConfig.initAttribute.highlight.setColor("#FF0000")
configuration.annotationsConfig.initAttribute.highlight.setAlpha(128)

方式三:纯代码构建

不使用 JSON 文件,完全通过代码构建配置:

java
CPDFConfiguration configuration = new CPDFConfiguration();
configuration.modeConfig = ModeConfig.normal();
configuration.toolbarConfig = ToolbarConfig.normal();
configuration.annotationsConfig = AnnotationsConfig.normal();
configuration.contentEditorConfig = ContentEditorConfig.normal();
configuration.formsConfig = FormsConfig.normal();
configuration.readerViewConfig = new ReaderViewConfig();
configuration.globalConfig = new GlobalConfig();
kotlin
val configuration = CPDFConfiguration().apply {
    modeConfig = ModeConfig.normal()
    toolbarConfig = ToolbarConfig.normal()
    annotationsConfig = AnnotationsConfig.normal()
    contentEditorConfig = ContentEditorConfig.normal()
    formsConfig = FormsConfig.normal()
    readerViewConfig = ReaderViewConfig()
    globalConfig = GlobalConfig()
}

各子配置类均提供 normal() 静态方法,返回包含默认值的实例。