java macos ms-word webdav

java - Abra el archivo de Word de WebDAV en OSX



macos ms-word (3)

Después de casi 4 semanas de investigación, desarrollé con éxito una solución para este problema:

  1. Primero, en el lado del servidor, cree un punto final para abrir el documento de Word con la library JavaScript de IT HIT. Esta biblioteca utiliza el complemento de navegador Sharepoint para abrir el documento en Word 2011 para Mac OSX con el protocolo Webdav.
  2. Ahora en Java, use la consola para abrir Safari con la URL del punto final para abrir el documento de Word. Para esto, quizás necesite pasar la URL del documento como parámetro para el punto final.

    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; }

Esto permite abrir el documento en Word 2011 para MAC OSX, pero tiene que lidiar con la seguridad y la sesión del usuario si tiene restricciones en la edición del documento. De todos modos, implementé esta solución con éxito y es la única solución que encontré que completa el proceso.

Tengo una aplicación Java que abre archivos WebDAV en MS Word. Esto funciona correctamente en Windows con el siguiente código:

Runtime.getRuntime().exec("cmd /c start winword " + webdavUrl);

Pero en Mac OSX esto no es posible. Probé esta función, pero solo abre un documento en blanco:

Runtime.getRuntime().exec(new String[]{"open", "-a", "Microsoft Word", webdavUrl});

Si creo un archivo desde la URL, puedo abrir el archivo pero pierdo su referencia a la URL de WebDav.

He encontrado una discussion sobre un código javascript que puede hacer este proceso desde el navegador.

¿Alguna idea?


Primero, ¿puedes acceder al directorio donde está la palabra doc? ¿Estás montando tu webdav?

Creo que el terminal buscará una ruta, que es tu webdavUrl. Para depurar, intente ejecutar el mismo comando pero solo con los argumentos -R y webdavUrl.

Runtime.getRuntime().exec(new String[]{"open", "-R", webdavUrl});

-R mostrará el archivo en el buscador y de esta manera usted sabe que el terminal puede navegar a su webdavUrl.


Puede intentar uno de los siguientes:

1 : Use el Desktop Api como se describe here .

File myFile = new File(webdavUrl); Desktop.getDesktop().open(myFile);

2 : Use ms-word: uri como se detalla here .

Por ejemplo, ingrese "ms-word:ofe|u|http://webdavUrl" en su navegador. Si tiene instalado Microsoft Office (2010 SP2 +), debería abrir la aplicación word con el documento cargado.

Los siguientes recursos pueden ser útiles, ya que cubren diferentes formas en que podría abrir / editar archivos de Word en un servidor webdav.