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

Встроить в веб-приложение

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

У пользователя вашего продукта есть страница со списком файлов. Сегодня он нажимает «скачать» и уходит в чужую программу. После этих шагов он нажмёт «редактировать» и останется у вас: документ откроется прямо на странице, под вашим именем, а файл не покинет ваш контур.

Ниже — путь целиком, без предположений о том, что вы уже что-то знаете о редакторах. Всё, что нужно сделать руками, помещается в четыре шага.

Три вещи, и две из них у вас почти наверняка уже есть.

Что нужно Что это значит человеческим языком
Страница со списком файлов Та самая, где сейчас стоит «скачать». Туда добавится «редактировать».
Адрес «кто сейчас вошёл» Ваш сервер отвечает, что за пользователь пришёл. Это ваш личный кабинет — он уже есть.
Адрес «отдай файл по номеру» Ваш сервер отдаёт сам документ тому, у кого есть право. Это ваше хранилище — оно тоже уже есть.

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

  1. Возьмите ядро. В поставке лежит один исполняемый файл — процессор документов. Никаких зависимостей ставить не нужно, это одна программа. Где она лежит после установки, сказано в Установке и проверке; дальше мы зовём её $CLI.

  2. Запустите службу у себя. Одна команда на вашем сервере. Она поднимает маленький процесс, который слушает только локальный адрес — снаружи к нему не подключиться.

    Окно терминала
    FASTDOC_CLI_BIN="$CLI" \
    WEBHOST_WS_DIR=/opt/fastdoc/webhost \
    node webhost/cabin-manager.mjs \
    --template /opt/fastdoc/blank.docx \
    --docs-dir /opt/fastdoc/cabins \
    --port 8090 \
    --auth-url 'https://ваш-хост/api/me' \
    --attach-url 'https://ваш-хост/api/files/{id}/content'

    Два последних адреса — это те самые ваши «кто вошёл» и «отдай файл». Больше служба ничего о вашей системе не знает.

  3. Пропустите её через свой сервер. Обычный проброс в nginx с одним обязательным условием: переключение на WebSocket должно проходить. Без него редактор не свяжется с ядром и покажет пустое место. Готовый образец настройки лежит в поставке.

    Редактор должен открываться по https и на том же домене, что и ваше приложение. Иначе браузер не отдаст ему ваши куки, и пользователь увидит «нужен вход» вместо документа.

  4. Поставьте рамку на страницу. Четыре строки в том месте, где сейчас ссылка «скачать»:

    <iframe src="/fastdoc/?doc=document-id"
    style="width:100%;height:100%;border:0"
    allow="clipboard-read; clipboard-write"></iframe>

    Вместо document-id подставьте номер файла из вашей же базы — тот, что вы и так знаете.

Он нажимает «редактировать» и остаётся на вашем сайте. Открывается редактор с его документом: лента, страницы, курсор, всё как в привычной программе. Правит абзац, нажимает сохранить — и файл возвращается в ваше хранилище вашим же адресом, новой версией.

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

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

Есть и второй путь, которого у документов нет: ядро таблиц собирается под WebAssembly и работает прямо в браузере, на устройстве пользователя. Тогда ваш сервер отдаёт только страницу и файл, а считает всё браузер — ставить и обновлять на сервере нечего. Что это даёт и чего стоит — Ядро в браузере.

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

Что вы хотите сделать Куда смотреть
Собрать документ по шаблону: заголовки, таблицы, колонтитулы, оглавление Что A4 умеет с документом
Свести правки нескольких человек, принять или отклонить исправления Совместная работа над договором
Разослать один документ по списку получателей из CSV Печать и выпуск
Посчитать книгу: формулы, сводные таблицы, запросы к данным Карта возможностей рядом с Excel
Понять, по какому щелчку что происходит, и добавить своё меню Реакция на щелчки
Точные имена всех вызовов с полями Справочник A4, Справочник F1

Проверить за 15 минут

Ядро отвечает, ваш документ открыт и сохранён — до всякого встраивания.

Быстрый старт A4

Разобрать устройство

Кто чем владеет, где проходят границы и почему у оболочки нет своей копии документа.

Редактор в браузере

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

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