Skip to content

PDF 生成模板编辑器

开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 API,灵活构建文档生成流程。

查看 GitHub

API 参考 ​

查看器初始化后,公共 API 暴露在 window.instance:

javascript
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。

javascript
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, options?: { continueAdding?: boolean }) => void按 data-element 激活工具。continueAdding 目前只用于在创建签名域后继续保持 signatureFields 工具处于活动状态。
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.textPopup
  • UI.annotationPopup
  • UI.contentEditorPopup
  • UI.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

弃用别名 ​

别名替代
setThemeModesetTheme
setActiveToolModesetToolbarGroup
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。
  • 内容编辑: setContentEditorProperty、getContentEditManager、getContentEditHistoryManager、saveDocumentEdit。
  • 表单: 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。

相关 ​