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.ZH — zh(默认语言)
  • ONLYOFFICE_LANG_KEY.EN — en

OFFICE_THEME

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

常量值说明
OFFICE_THEME.WHITEtheme-white现代浅色(默认)
OFFICE_THEME.NIGHTtheme-night现代深色

相关导出:

  • 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-embed-sdk";

STATIC_RESOURCE.onlyoffice.root     // 默认 /packages/onlyoffice/9.4.0-develop
STATIC_RESOURCE.onlyoffice.apiUrl     // api.js 绝对 URL
STATIC_RESOURCE.x2t.script            // 独立签名 release 的 x2t.js
STATIC_RESOURCE.x2t.wasm              // 独立签名 release 的 Brotli x2t.wasm

编辑器 SDK 根路径默认是 /packages/onlyoffice/9.4.0-develop;x2t 使用不可变的 /packages/onlyoffice/x2t/<tag> 目录。如需使用 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-night"。类型自 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-embed-sdk";

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

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