Перейти к содержимому
FastOffice

Интерфейс поверхности в браузере (Browser Surface API)

Встраивание поверхности, её установка и снятие, события для вашего приложения и текущие границы.

Запуск поверхности. $CLI — путь к процессору внутри установленного приложения, он задан на странице Установка и проверка:

Окно терминала
"$CLI" surface --port 0 --doc /absolute/input.docx --save /absolute/output.docx

Что поверхность выставляет в окне. Имена начинаются с fastdoc — это внутреннее имя документного движка в коде, а не другой продукт: переименование в A4 их не затронуло, потому что смена имён в коде сломала бы совместимость у тех, кто уже встроил поверхность. То же и у таблиц с префиксом fastsheet.

interface HostConfig { theme?:"light"|"dark"; locale?:string; readOnly?:boolean; cssVariables?:Record<`--fastdoc-${string}`,string>; }
interface Handle { container:HTMLElement; hostConfig:Readonly<HostConfig>; unmount():void; }
interface FastDocSurface { version:"fastdoc.surface-mount.v1"; mount(container:HTMLElement, config?:HostConfig):Handle; unmount():void; }
// window.fastdocSurface: FastDocSurface
type SurfaceEvent =
| {schema:"fastdoc.surface-host-event.v1";type:"ready";documentPath:string;savePath:string;theme:string;locale:string}
| {schema:"fastdoc.surface-host-event.v1";type:"dirty";dirty:boolean}
| {schema:"fastdoc.surface-host-event.v1";type:"saved";dirty:false;path:string;byteCount:number}
| {schema:"fastdoc.surface-host-event.v1";type:"error";operation:"connect"|"save";message:string}
| {schema:"fastdoc.surface-host-event.v1";type:"unmounted"};
window.addEventListener("fastdoc-host-event", e => consume((e as CustomEvent<SurfaceEvent>).detail));
// В WKWebView события приходят обработчику fastdocHost, в WebView2 — через WebMessageReceived

Поверхность сегодня ограничена: встраивание и снятие, чтение и правка первого абзаца, сохранение, завершение и пять событий. Произвольная структура документа, выделение и контекстное меню наружу не выведены.

Ассистент документации

Ответ собран из документации и может быть неточным — сверяйтесь с источниками.