PDF 生成模板编辑器
开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 API,灵活构建文档生成流程。
ComPDFKit_Tools 提供 CPDFCustomEventCallbackHelper 统一事件分发机制,用于监听自定义按钮点击、注释交互拦截等事件。
CPDFCustomEventCallbackHelper.getInstance().addCustomEventCallback(extraMap -> {
String eventType = extraMap.get(
CPDFCustomEventField.CUSTOM_EVENT_TYPE).toString();
// 根据事件类型处理
});CPDFCustomEventCallbackHelper.getInstance().addCustomEventCallback { extraMap ->
val eventType = extraMap[CPDFCustomEventField.CUSTOM_EVENT_TYPE].toString()
// 根据事件类型处理
}@Override
protected void onDestroy() {
super.onDestroy();
CPDFCustomEventCallbackHelper.getInstance().removeCustomEventCallback(this);
}override fun onDestroy() {
super.onDestroy()
CPDFCustomEventCallbackHelper.getInstance().removeCustomEventCallback(this)
}当自定义工具栏按钮被点击时触发。
| 字段 | 值/说明 |
|---|---|
CUSTOM_EVENT_TYPE | CPDFCustomEventType.TOOLBAR_ITEM_TAPPED |
identifier | 按钮的唯一标识符 |
if (CPDFCustomEventType.TOOLBAR_ITEM_TAPPED.equals(eventType)) {
String identifier = extraMap.get("identifier").toString();
switch (identifier) {
case "custom_download":
// 处理下载按钮点击
break;
}
}if (CPDFCustomEventType.TOOLBAR_ITEM_TAPPED == eventType) {
when (extraMap["identifier"].toString()) {
"custom_download" -> {
// 处理下载按钮点击
}
}
}详见 自定义菜单按钮。
当自定义上下文菜单项被点击时触发。
| 字段 | 值/说明 |
|---|---|
CUSTOM_EVENT_TYPE | CPDFCustomEventType.CONTEXT_MENU_ITEM_TAPPED |
IDENTIFIER | 菜单项的唯一标识符 |
ANNOTATION | 关联的注释对象(可为 null) |
if (CPDFCustomEventType.CONTEXT_MENU_ITEM_TAPPED.equals(eventType)) {
String identifier = extraMap.get(CPDFCustomEventField.IDENTIFIER).toString();
CPDFAnnotation annotation = (CPDFAnnotation) extraMap.get(
CPDFCustomEventField.ANNOTATION);
// 根据 identifier 处理
}if (CPDFCustomEventType.CONTEXT_MENU_ITEM_TAPPED == eventType) {
val identifier = extraMap[CPDFCustomEventField.IDENTIFIER].toString()
val annotation = extraMap[CPDFCustomEventField.ANNOTATION] as? CPDFAnnotation
// 根据 identifier 处理
}详见 上下文菜单。
当 annotationsConfig 中对应的 intercept*Action 设为 true 时,点击注释将触发事件而非执行默认行为。
| 拦截配置 | 事件描述 |
|---|---|
interceptNoteAction: true | 拦截便签注释点击 |
interceptLinkAction: true | 拦截链接注释点击 |
当 formsConfig 中对应的 intercept*Action 设为 true 时,点击表单控件将触发事件(仅 ListBox、ComboBox 和 PushButton 支持)。
| 拦截配置 | 事件描述 |
|---|---|
interceptListBoxAction: true | 拦截列表框点击 |
interceptComboBoxAction: true | 拦截下拉框点击 |
interceptPushButtonAction: true | 拦截按钮点击 |
| 常量 | 说明 |
|---|---|
CUSTOM_EVENT_TYPE | 事件类型标识 |
IDENTIFIER | 自定义按钮/菜单的唯一标识符 |
ANNOTATION | 关联的注释对象 |
| 常量 | 说明 |
|---|---|
TOOLBAR_ITEM_TAPPED | 工具栏按钮点击事件 |
CONTEXT_MENU_ITEM_TAPPED | 上下文菜单项点击事件 |
onDestroy() 中移除回调,避免内存泄漏CUSTOM_EVENT_TYPE,不同事件可能复用同一回调extraMap 取值时做好空值检查