Tenemos una aplicación MVC donde algunos usuarios realizarán una acción y un efecto secundario es que necesitan tener un documento de Word impreso en su estación de trabajo INMEDIATAMENTE. No queremos un cuadro de diálogo de impresión, ni solicitar el número de copias, ni pedir la impresora, simplemente imprima de inmediato. Los usuarios están en máquinas con Windows 10 con Chrome o Edge como su navegador y todos tienen Microsoft 365 instalado localmente. Los usuarios no suelen ser Administradores.
Lo que sí tenemos funcionando es invocando Word desde JavaScript. El código JS suele ser:
window.open(link, "_blank");Donde el enlace se parece a (según https://docs.microsoft.com/en-us/office/client-developer/office-uri-schemes sección A-3)
'ms-word:ofe|u|http://server/api/word/document/81510062.docx'Lo anterior funciona para abrir Word para editarlo bien, pero eso no es lo que queremos en este caso. Queremos que el sistema actúe como si WinWord se hubiera abierto con /mFilePrintDefault y /mFileExit.
Intenté agregar los interruptores al final del enlace pero no tuve ninguna alegría.
'ms-word:ofe|u|http://server/api/word/document/81510062.docx%20/mFilePrintDefault%20/mFileExit'resultó en
Esta acción no se pudo realizar porque Office no reconoce el comando que se le dio.
Diré que creamos el documento sobre la marcha cuando se invoca la acción a través de un generador XML XSLT, por lo que si hay algo que podamos incluir en el documento de Word, lo consideraríamos. Sin embargo, no podemos tener ningún cuadro de diálogo de advertencia sobre macros, etc.
Además, ActiveX está fuera de la mesa; lo usamos hace años con IE, ¡pero eso es un pasado lejano!
¿Algunas ideas?
John B. en la península de Delmarva