PDF 生成模板编辑器
开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 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。