CobaltCore сборка

Я пытаюсь реализовать пользовательский хост Wopi в C#, который может обрабатывать протокол Cobalt с использованием сборки CobaltCore.

Но я не нашел никакой документации для CobaltCore.dll. Обозреватель объектов немного полезен.

Пожалуйста, предоставьте некоторые детали, если у кого-то была похожая проблема. Как мне использовать Cobalt для расшифровки сообщений?

3 ответа

Решение

Для реализации редактирования текста перейдите сюда:

Могу ли я просто использовать сервер Office Web Apps

// fsshttpb payload, basically decode from base64 encoded

byte[] test1 = System.Convert.FromBase64String("DAALAJzPKfM5lAabBgIAAO4CAABaBBYADW1zd29yZAd3YWN6AggA1RyhD3cBFgIGAAMFABoEIAAL3Do4buY4RJXm4575cgEiigICAAALAawCAFUDAQ==");

// create an atom object from the fsshttp input
AtomFromByteArray atomRequest = new AtomFromByteArray(test1);

RequestBatch requestBatch = new RequestBatch();
requestBatch.DeserializeInputFromProtocol(atomRequest);

// now you can inspect requestBatch to view the decoded objects

редактировать:

Вот пример реализации с использованием CobaltCore. Практически сочетание моих ответов о WOPI/FSSHTTP на этом сайте в одном проекте.

https://github.com/thebitllc/WopiBasicEditor

Спасибо thebitllc за правильный подход к возвращению файла.

 System.IO.FileStream _FileStream = new System.IO.FileStream("C:\\WOPI OWA WORD EDITOR\\OWA_Updated_Documents\\output.docx", System.IO.FileMode.Create, System.IO.FileAccess.Write);
GenericFdaStream myCobaltStream =  new GenericFda(cobaltFile.CobaltEndpoint, null).GetContentStream();
myCobaltStream.CopyTo(_FileStream);
_FileStream.Close(); 

Кроме того, реализуя подход Cobalt к редактированию и, подобно Джулии, он останавливается на "экране редактирования", даже после обратных вызовов lockingstore, включая соавтора и т. Д. Однако я обнаружил, что система журналов для OWA раскрывает довольно значительные подробности о том, что такое сервер OWA пытаясь сделать. C:\ProgramData\Microsoft\OfficeWebApps\Data\Logs\ULS. Из этих журналов видно, что он жалуется на отсутствующий токен доступа, предоставляя

    &access_token=1&access_token_ttl=0 

до конца wopi url эта ошибка исчезает.

Я также протестировал многие поля информации о файле и смог увидеть, как сервер OWA кеширует информацию. Если мы продолжим менять cfi.Version

FileInfo info = new FileInfo("C:\\WOPI OWA WORD EDITOR\\OWA_Source_Documents\\" + fi.Name);
cfi.Version = info.LastWriteTimeUtc.ToString("s");

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

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

 cfi.SupportsCoauth = true; // all three (3) needed to see the edit in browser menu in view mode .
 cfi.SupportsCobalt = true; // all three (3) needed to see the edit in browser menu in view mode .
 cfi.SupportsFolders = true; // all three (3) needed to see the edit in browser menu in view mode .
 cfi.SupportsLocks = true;
 cfi.SupportsScenarioLinks = false;
 cfi.SupportsSecureStore = true;
 cfi.SupportsUpdate = true;

Эта функция блокирует функцию редактирования слова, и если вы не обновите версию файла, она останется заблокированной, даже если вы вернете ей значение false.

cfi.WebEditingDisabled = false;

Роджер Хогг

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