API 参考
查看器初始化后,公共 API 暴露在 window.instance:
window.instance = {
docViewer, // 底层 ComPDFKitViewer(实例 1)
Core: { /* 引擎桥接层(约 120 个函数) */ },
UI: { /* UI API(约 62 个函数 + Header/Panel/Popup 类) */ },
};本页按类别列出 instance.UI 接口。引擎(instance.Core)接口见 Core 桥接层。
每个
apis/*.js模块是工厂(stores...) => (...args) => result;apis/index.js在注册时注入 Pinia store。还暴露三个弃用别名:setThemeMode、setActiveToolMode、setActiceToolMode。
头部与工具栏
UI.setHeaderItems(headerCallback)
在回调中定制头部/工具栏分组。回调接收 UI.Header 实例——所有头部数组的可变工作副本。
UI.Header 方法: get(dataElement)、getItems()、getHeader(group)、insertBefore(item)、insertAfter(item)、delete(id?)、shift()、unshift(...items)、push(...items)、pop()、update(items) ——均可链式,返回 Header。
UI.setHeaderItems(header => {
header.getHeader('default').push({ type: 'actionButton', dataElement: 'myBtn', onClick: () => {} });
});UI.setToolbarGroup(groupDataElement)
切换活动工具栏分组。分组:toolbarGroup-View、-Annotation、-Form、-Measurement、-Sign、-Security、-Redaction、-Compare、-Editor、-Document、-Separation。
元素(打开/关闭/启用/禁用)
| API | 签名 | 说明 |
|---|---|---|
openElement | (dataElement: string) => void | 打开元素;关闭同侧兄弟面板。 |
closeElement | (dataElement: string) => void | |
openElements | (dataElements: string[]) => void | |
closeElements | (dataElements: string[]) => void | |
isElementOpen | (dataElement: string) => boolean | |
disableElements | (dataElements: string[] | string) => void | 从 DOM 卸载(不禁用功能)。 |
enableElements | (dataElements: string[] | string) => void | |
setActiveElementTab | (dataElement: string, tab: string|number) => void | 切换活动子标签。 |
面板
UI.addPanel(panel)
添加自定义面板。panel = { dataElement, location: 'left'|'right', render: string | () => HTMLElement }。
UI.setPanels(panelList)
替换整个面板列表。
UI.getPanels() → Array<UI.Components.Panel>
返回深拷贝条目,包装为 Panel 实例。
UI.Components.Panel: dataElement(读/写)、render(读/写)、location(读/写,非法 → 'right')、setLocation(location)、delete()。
工具
| API | 签名 | 说明 |
|---|---|---|
setActiveTool | (dataElement: string) => void | 按 data-element 激活工具。 |
getActiveTool | () => object | |
getTool | (tool: string) => object | 工具样式预设的浅拷贝。 |
getToolColor | (tool: string) => string | |
registerTool | (tool: object, options: object) => boolean | 注册自定义批注工具。 |
主题与样式
| API | 签名 | 说明 |
|---|---|---|
setTheme | (value: string|object) => void | 'light' / 'dark'。 |
setCustomStyle | (style: string) => void | 向 <head> 注入 <style>。 |
本地化
| API | 签名 | 说明 |
|---|---|---|
setLanguage | (language: string) => Promise<void> | en、zh-CN、zh-TW、fr、th、ja。持久化到 localStorage。 |
addLanguage | (language: object) => void | |
removeLanguage | (language: string) => void | |
setLanguages | (languages: Array|object) => void |
签名
| API | 签名 | 说明 |
|---|---|---|
setAutoJumpNextSign | (value: boolean) => void | |
setSignatureDialogTabs | (value: Array) => void | |
setSignatureDialogProperties | (type: string, properties: object, replace?: boolean = false) => void | |
setEnableSignatureTemplates | (value: boolean) => void | |
enableSignatureTool | () => void | |
disableSignatureTool | () => void |
印章
| API | 签名 | 说明 |
|---|---|---|
setStampPanelTabs | (tabs: Array) => void | |
setImportStamps | (images: Array) => void | |
addCustomStamps | (images: Array) => void | 持久化到 localStorage。 |
setCustomStamps | (stamps: Array) => void | |
getCustomStamps | () => Array |
表单
| API | 签名 | 说明 |
|---|---|---|
setFormBoardFold | (fold: boolean) => void | |
setFormBoardPosition | (position: string|number) => void | |
setHighlightForm | (value: boolean) => void | 推送到 core。 |
内容编辑
| API | 签名 | 说明 |
|---|---|---|
disableDocumentEditorSave | () => void | |
disableDocumentEditorSaveAs | () => void | |
enableDocumentEditorSave | () => void | |
enableDocumentEditorSaveAs | () => void | |
saveDocumentEditor | () => Promise<void> | 保存编辑并重新加载文档。 |
弹窗
UI.addCustomModal(options)
注册自定义弹窗。options = { dataElement, disableBackdropClick?, disableEscapeKeyDown?, render?, header, body, footer },每个区域为 { title, className, style, children }。相同 dataElement 替换已有弹窗。通过 openElement / closeElement / disableElements 控制。
弹出菜单
四个属性,各实现 UI.Popup(add(items, dataElement?)、update(items?)、getItems()):
UI.textPopupUI.annotationPopupUI.contentEditorPopupUI.cropPagePopup
通过 UI.disableElements 移除项。
用户/作者
| API | 签名 | 说明 |
|---|---|---|
setCurrentUser | (user: string) => void | 回退到 'Guest'。 |
setAnnotator | (user: string) => void | 与 setCurrentUser 相同 action。 |
setAuthor | (value: string) => void | 为假时为空字符串。 |
setHighlightLink | (value: boolean) => void | |
getPassword | () => string | 当前文档密码。 |
字体
| API | 签名 | 说明 |
|---|---|---|
setCustomFonts | (fonts: Array) => void | 非数组则报错。 |
getCustomFonts | () => Array | |
setFontSizes | (fontSizes: Array) => void | |
getFontSizes | () => Array |
加载
| API | 签名 | 说明 |
|---|---|---|
setCustomLoading | (value: boolean) => void |
批注导入/导出
| API | 签名 | 说明 |
|---|---|---|
disableAnnotationExport | () => void | |
enableAnnotationExport | () => void | |
disableAnnotationImport | () => void | |
enableAnnotationImport | () => void |
弃用别名
| 别名 | 替代 |
|---|---|
setThemeMode | setTheme |
setActiveToolMode | setToolbarGroup |
setActiceToolMode(拼写错误) | setToolbarGroup |
各别名为发出 [ComPDF] "<name>" is deprecated and will be removed in a future version. Please use "<replacement>" instead. 并转发所有参数。
instance.Core(引擎桥接层)
完整 instance.Core 接口(约 120 个函数)见 Core 桥接层。常用条目:
- 文档:
loadDocument、getPagesCount、getCurrentPage、getDocumentName、download、saveDocumentEdit、compare。 - 导航:
nextPage、previousPage、rotateClockwise、rotateCounterclockwise、zoomIn、zoomOut、scaleChanged、getScale、switchScrollMode、switchSpreadMode、requestFullScreenMode、toggleSidebar、pageToWindow、windowToPage。 - 搜索:
search、setActiveSearchResult、clearSearchResults、getSelectedText。 - 批注:
getAnnotationsList、getAnnotationManager、getAnnotationHistoryManager、importAnnotations、exportAnnotations、exportXfdf、selectAnnotation、jumpToAnnotation、setAnnotationStyles、addAnnotationImage、handleReplyAnnotation。 - 工具:
setTool、switchTool、setToolMode、getToolMode、getToolStyles、setToolStyles、registerTool。 - 表单:
handleField、enableSkipNoRequired、disableSkipNoRequired、setAutoJumpNextSign、getRequiredFormSign。 - 签名:
handleSign、getSignature、deleteSignature、verifySignature、getVerificationResult、loadCertificates、addToTrustedCertificateLists、checkCertificateIsTrusted。 - 安全:
checkPermissionPassword、getPermission、setPassword、removePassword、checkPassword。 - 密文/扁平化:
applyRedactions、flattenPdf、flattenPdfDownload。 - 事件:
eventBus、addEvent、removeEvent。 - 用户:
setCurrentUser、getCurrentUser、isUserAdmin、isReadOnlyModeEnabled。