Проверить за 15 минут
Ядро отвечает, ваш документ открыт и сохранён — до всякого встраивания.
Первые шаги для веб-продукта: что взять из поставки, что запустить у себя, какие четыре строки поставить на страницу — и какой экран увидит пользователь.
У пользователя вашего продукта есть страница со списком файлов. Сегодня он нажимает «скачать» и уходит в чужую программу. После этих шагов он нажмёт «редактировать» и останется у вас: документ откроется прямо на странице, под вашим именем, а файл не покинет ваш контур.
Ниже — путь целиком, без предположений о том, что вы уже что-то знаете о редакторах. Всё, что нужно сделать руками, помещается в четыре шага.
Три вещи, и две из них у вас почти наверняка уже есть.
| Что нужно | Что это значит человеческим языком |
|---|---|
| Страница со списком файлов | Та самая, где сейчас стоит «скачать». Туда добавится «редактировать». |
| Адрес «кто сейчас вошёл» | Ваш сервер отвечает, что за пользователь пришёл. Это ваш личный кабинет — он уже есть. |
| Адрес «отдай файл по номеру» | Ваш сервер отдаёт сам документ тому, у кого есть право. Это ваше хранилище — оно тоже уже есть. |
Своих учётных записей у редактора нет и не будет: он спрашивает у вас, кто пришёл, и верит вашему ответу. Пароли, роли и права остаются вашими.
Возьмите ядро. В поставке лежит один исполняемый файл — процессор
документов. Никаких зависимостей ставить не нужно, это одна программа.
Где она лежит после установки, сказано в
Установке и проверке; дальше мы зовём её $CLI.
Запустите службу у себя. Одна команда на вашем сервере. Она поднимает маленький процесс, который слушает только локальный адрес — снаружи к нему не подключиться.
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'Два последних адреса — это те самые ваши «кто вошёл» и «отдай файл». Больше служба ничего о вашей системе не знает.
Пропустите её через свой сервер. Обычный проброс в nginx с одним обязательным условием: переключение на WebSocket должно проходить. Без него редактор не свяжется с ядром и покажет пустое место. Готовый образец настройки лежит в поставке.
Редактор должен открываться по https и на том же домене, что и ваше приложение. Иначе браузер не отдаст ему ваши куки, и пользователь увидит «нужен вход» вместо документа.
Поставьте рамку на страницу. Четыре строки в том месте, где сейчас ссылка «скачать»:
<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 минут
Ядро отвечает, ваш документ открыт и сохранён — до всякого встраивания.
Разобрать устройство
Кто чем владеет, где проходят границы и почему у оболочки нет своей копии документа.