Можно ли синхронизировать правки, сделанные в локальном редакторе документов Word, с его документом центрального хранилища (документ БД) при локальном сохранении документа?

Мне нужно реализовать Java-приложение для управления документами MSWord (или для любого редактора текстовых документов), и в этом случае текстовые документы будут храниться в центральном хранилище, таком как база данных или на сервере. Многие пользователи будут обрабатывать документы, для чего требуется полная версия контроль. Все сделанные изменения / изменения должны быть сохранены в центральном документе.

У меня вопрос : возможно ли сохранить изменения в центральном документе (расположенном в базе данных) после открытия и редактирования в локальном редакторе документов? Я имею в виду, что при доступе к центральному документу и его редактировании я думаю, что они будут делать это на локальной копии, и как только действие сохранения документа может синхронизировать это изменение с центральной копией? Есть ли способ реализовать это с помощью кода, что-то вроде триггера события сохранения?

Все изменения, которые пользователи вносят в свою копию, должны обновляться в центральной копии. Я планирую реализовать что-то вроде работы с документами Google в этом сценарии. Приглашение ваши ценные предложения и полезные ссылки, если таковые имеются?

2 ответа

В Java вы можете прослушивать файловую систему и получать уведомления об изменении файлов, поэтому теоретически вы можете использовать это, чтобы увидеть, когда документ был отредактирован, и загрузить его на сервер.

Однако вам нужно решить эти проблемы:

  • Если приложение Java закрывается / вылетает при открытии Word, ничего не будет обнаружено при сохранении, и изменения пользователя в их документе будут потеряны, и они не будут знать, почему.
  • Люди всегда сохраняют документы Word при редактировании, чтобы не потерять данные, а хотели бы, чтобы окончательное сохранение было зарегистрировано как их ревизия.
  • Несколько пользователей одновременно редактируют один и тот же документ и перезаписывают изменения друг друга.
  • В автоматическом автоматическом процессе пользователи не могут вводить комментарии, описывающие их изменения.

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

Вот что я хотел бы рассмотреть:

Приложение с графическим интерфейсом (Java в вашем случае), которое показывает документы в центральном хранилище и позволяет запускать Word (или любой другой) для редактирования, которое затем извлекает и также блокирует документ в хранилище. Затем, когда завершается процесс Word (или любой другой), изменения фиксируются (возможно, после всплывающего диалогового окна с подтверждением, где пользователь может отказаться от своих изменений или может потребоваться ввести комментарий об их изменении), и блокировка хранилища для удаленного файла.

Тогда вам также понадобится какой-то механизм для обработки устаревших блокировок (например, когда пользовательский ПК был выключен / сломался без снятия блокировки). Обязательно используйте VCS, который хорошо работает с двоичными файлами и поддерживает блокировку файлов на стороне сервера, и закодируйте приложение, чтобы вы могли легко менять программное обеспечение VCS, если ваш первый выбор не идеален.

Таким образом, ваше Java-приложение может выполнять большую часть своей работы, выполняя другие программы (двоичные файлы VCS для проверки / блокировки / фиксации, приложение GUI для редактирования). Хотя приложение кажется довольно простым, оно все же может стоить того, чтобы взглянуть на что-то вроде Netbeans RCP или Eclipse RCP и создать свое приложение на основе такой платформы. Я на самом деле не использовал их сам, так что воспринимайте это как идею для изучения и исследования, а не как рекомендацию.

Другие вопросы по тегам