Открыть текстовый файл WebDAV на OSX
У меня есть приложение Java, которое открывает файлы WebDAV в MS Word. Это успешно работает в Windows со следующим кодом:
Runtime.getRuntime().exec("cmd /c start winword " + webdavUrl);
Но на Mac OSX это невозможно. Я попробовал эту функцию, но она открывает только пустой документ:
Runtime.getRuntime().exec(new String[]{"open", "-a", "Microsoft Word", webdavUrl});
если я создам файл из URL-адреса, я могу открыть файл, но я теряю ссылку на URL-адрес WebDav.
Я нашел обсуждение о javascript-коде, который может сделать этот процесс из браузера.
Любые мысли?
Ответы
Ответ 1
Во-первых, вы можете получить доступ к каталогу, в котором находится слово doc? вы устанавливаете свой webdav?
Я считаю, что терминал будет искать путь, который является вашим webdavUrl. Для отладки попробуйте запустить ту же команду, но только с аргументами -R и webdavUrl.
Runtime.getRuntime().exec(new String[]{"open", "-R", webdavUrl});
-R покажет файл в finder и таким образом вы знаете, что терминал может фактически перейти к вашему webdavUrl.
Ответ 2
Вы можете попробовать одно из следующих действий:
1: используйте Desktop Api, как описано здесь.
File myFile = new File(webdavUrl);
Desktop.getDesktop().open(myFile);
2:
Используйте ms-word:
uri в качестве подробного здесь.
Например, введите "ms-word:ofe|u|http://webdavUrl"
в свой браузер.
Если у вас установлен Microsoft Office (2010 SP2 +), это должно открыть приложение Word с загруженным документом.
Следующие ресурсы могут быть полезны, поскольку они охватывают различные способы открытия/редактирования файлов слов на сервере webdav.
Ответ 3
После почти 4 недель исследования я успешно разработал решение этой проблемы:
- Во-первых, на стороне сервера создайте конечную точку, чтобы открыть документ слова с помощью библиотеки html javascript . Эта библиотека использует плагин Sharepoint Browser для открытия документа в Word 2011 для Mac OSX с помощью протокола Webdav.
-
Теперь на java, используйте консоль, чтобы открыть Safari с URL-адресом конечной точки, чтобы открыть документ слова. Для этого, возможно, вам нужно передать URL-адрес документа в качестве параметра для конечной точки.
Runtime.getRuntime().exec(new String[]{"open", "-a", "Safari", getWebdavUrl(document)});
private static String getWebdavUrl(Document document) throws JSONException, UnsupportedEncodingException {
RestClient client = RestClient.getClient();
String baseUrl = client.SERVER_URL + "webdav_end_point";
JSONObject params = new JSONObject();
params.put("url", document.getUrl());
//convert the JSON params to GET params for the URL
String url = baseUrl + RestClient.buildParamsString(params);
//https://wwww.example.com/webdav_end_point?url=www.example.com/path/to/webdav/document.docx
return url;
}
Это позволяет открыть документ в Word 2011 для MAC OSX, но вам придется иметь дело с безопасностью и сеансом пользователя, если у вас есть ограничения на издание документа. Во всяком случае, я реализовал это решение успешно, и это единственное решение, которое я нашел, которое завершает процесс.