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()静态方法,返回包含默认值的实例。