API 参考

← 完整示例 | 注意事项 →

常量

ONLYOFFICE_ID

编辑器容器的 DOM ID,默认为 'iframe-office-id'

ONLYOFFICE_CONTAINER_CONFIG

字段说明
PARENT_SELECTOR父元素选择器 .onlyoffice-container
PARENT_CLASS_NAME父元素类名 onlyoffice-container
STYLE容器绝对定位样式 { position, inset }

ONLYOFFICE_EVENT_KEYS

常量说明
SAVE_DOCUMENTsaveDocument保存完成,含 binData
DOCUMENT_READYdocumentReady文档就绪
LOADING_CHANGEloadingChangeLoading 状态
ONSAVEonSave保存流程结束(轻量)

FILE_TYPE

  • FILE_TYPE.DOCX — Word
  • FILE_TYPE.XLSX — Excel
  • FILE_TYPE.PPTX — PowerPoint

ONLYOFFICE_LANG_KEY

  • ONLYOFFICE_LANG_KEY.ZHzh默认语言
  • ONLYOFFICE_LANG_KEY.ENen

OFFICE_THEME

OnlyOffice 编辑器界面主题(customization.uiTheme)。

常量说明
OFFICE_THEME.WHITEtheme-white浅色(默认
OFFICE_THEME.CLASSIC_LIGHTtheme-classic-light经典浅色
OFFICE_THEME.LIGHTtheme-lightLight
OFFICE_THEME.DARKtheme-dark深色
OFFICE_THEME.NIGHTtheme-night夜间
OFFICE_THEME.CONTRAST_DARKtheme-contrast-dark高对比深色

相关导出:

  • DEFAULT_OFFICE_THEME — 默认 OFFICE_THEME.WHITE
  • OFFICE_THEME_OPTIONS{ id, label }[],供示例页 / UI 下拉使用

READONLY_SWITCH_MIN_DELAY_MS

只读 ↔ 编辑切换时 loading 最短展示时长,值为 200(ms)。

STATIC_RESOURCE

OnlyOffice SDK 与 x2t 静态资源路径总入口。

import { STATIC_RESOURCE } from "@/components/onlyoffice-web-comp";

STATIC_RESOURCE.onlyoffice.root     // 默认 /packages/onlyoffice/9.4.0-develop
STATIC_RESOURCE.onlyoffice.apiUrl     // api.js 绝对 URL
STATIC_RESOURCE.x2t.script            // x2t.js 路径
STATIC_RESOURCE.x2t.wasm              // x2t.wasm 路径

SDK 根路径默认是 /packages/onlyoffice/9.4.0-develop;如需使用 CDN,请在首次创建编辑器前调用 OnlyOfficeManager.registerStaticResource({ cdnOrigin })

__custom_font_registry__

SDK 侧字体注册表,定义于 public/packages/onlyoffice/9.4.0-develop/sdkjs/common/AllFonts.js。键为 catalog 文件 id(如 "1001"),值为文档内字体别名数组。完整配置流程见 字体配置

类型定义

OnlyOfficeManagerOptions

type OnlyOfficeManagerOptions = {
  containerId?: string;
  fileType: FileType;
  defaultFileName: string;
  readOnly?: boolean;
  lang?: OnlyOfficeLang;
  theme?: OfficeTheme;
  officeXmlEvent?: OfficeXmlEventConfig;
};

OpenDocumentInput

type OpenDocumentInput = {
  fileName: string;
  file?: File;
  isNew?: boolean;
  readOnly?: boolean;
  officeXmlEvent?: OfficeXmlEventConfig;
};

OfficeXmlEventConfig

type OfficeXmlEventConfig = {
  isEnable?: boolean;   // 默认 false
  limitBytes?: number;  // 默认 2GB
};

OFFICE_XML_EVENT_CONFIG.default 为默认配置。开启后,打开 Office ZIP 文件前会统计 .xml / .rels 的解压后总大小,超过阈值时触发 OFFICE_XML_SIZE_LIMIT_EXCEEDED 事件并显示默认错误层。

DocumentReadyData

type DocumentReadyData = {
  fileName: string;
  fileType: string;
  instanceId?: string;
};

SaveDocumentData

type SaveDocumentData = {
  fileName: string;
  fileType: string;
  binData: Uint8Array;
  instanceId: string;
  media?: Record<string, Uint8Array>;
};

OnSaveData

type OnSaveData = {
  fileName: string;
  instanceId: string;
};

LoadingChangeData

type LoadingChangeData = {
  loading: boolean;
};

OfficeTheme

编辑器界面主题 ID,与 OFFICE_THEME 常量值一致,例如 "theme-white""theme-dark"。类型自 const/index.ts 导出为 OfficeThemeId,在 EditorManager / OnlyOfficeManager 中写作 OfficeTheme

AscWordApiMethod

Word 编辑器 iframe 内 SDK 方法名联合类型,定义于 type/word-api.ts。用于 EditorManager.subscribe({ type, fn })type 参数。

常用条目(节选):

// 批注
| 'asc_onAddComment'
| 'asc_onChangeCommentData'
| 'asc_onRemoveComment'
// 修订
| 'asc_onShowRevisionsChange'
// 文档状态
| 'asc_onDocumentModifiedChanged'
| 'asc_onSaveCallback'

完整列表见源码 type/word-api.ts

导出清单

统一从包入口导入:

import {
  // 门面
  OnlyOfficeManager,
  onlyOfficeManagerFactory,
  // 底层
  EditorManager,
  EditorLogger,
  editorManager,
  editorManagerFactory,
  createEditorView,
  initializeOnlyOffice,
  convertBinToDocument,
  // 事件
  onlyofficeEventbus,
  ONLYOFFICE_EVENT_KEYS,
  // 常量
  FILE_TYPE,
  ONLYOFFICE_ID,
  ONLYOFFICE_CONTAINER_CONFIG,
  ONLYOFFICE_LANG_KEY,
  OFFICE_THEME,
  DEFAULT_OFFICE_THEME,
  OFFICE_THEME_OPTIONS,
  STATIC_RESOURCE,
  // store
  setDocumentObj,
  getDocumentObj,
} from "@/components/onlyoffice-web-comp";

EditorLogger 记录单个编辑器实例的 socket、downloadAs、x2t worker 与操作日志。通过 manager.getLogger() / manager.printLogs() 读取或打印当前实例日志。

类型通过 export type *type/word-api.tstype/sdk-internal.ts 导出。