Введение
Возникла у нас в компании проблема с превью документов, использовали мы для превью на портале всем известную тулзу от гугла. Но с ней были проблемы, у пользователя не всегда рендерился документ(видимо лимиты по количеству вызовов) и когда он рендерился, то бывало, что внешне превьюсильно отлиалосьот оригинала. Поэтому было решено разработать превью документов на нашем кор. портале с использованием уже имеющегося у нас Office Online.
Теория
По счастливому стечению обстоятельств для работы с документами в Office Online используется неплохо задокументированный протокол – WOPI (http://wopi.readthedocs.io/).
Что нам нужно реализовать для организации предпросмотра:
1) Нужно получить необходимые для обращения к Office Online данные:
– файл discovery.xml
– ссылка на файл /wopi/<fileId> и ссылка на действие офис онлайн из файла discovery.xml
– токен и время его жизни в виде таймстемпа в миллисекундах
2) Нужно написать реализацию метода CheckFileInfo, который будет возращать информацию о файле
3) Нужно написать реализацию метода GetFile, который будет возращать содержимое файла
Практика
Лучше слов расскажет код, шутка, на самом деле мне пока немного лень писать то, как это было реализовано 🙂
Но надеюсь, что и этот код сможет оказаться полезным.