El Catálogo de funciones de Doconut enumera la impresión desde el navegador y la exportación a PDF como capacidades del visor. Controlar el acceso a ellas aún requiere dos decisiones separadas: si Doconut muestra la acción correspondiente y si la aplicación anfitriona autoriza esa operación para el usuario y documento actuales.

Para conocer los controles exactos que admite su compilación instalada, comience con la documentación de Doconut y los ejemplos empaquetados disponibles en la página de descarga de Doconut oficial. No copie claves de configuración ni código fuente de una versión no relacionada o de un artículo no verificado.
1. Defina la política de impresión primero
Anote quién puede imprimir y bajo qué condiciones antes de modificar la barra de herramientas. Una política útil responde preguntas como:
- ¿Se permite la impresión para todos los visores, solo ciertos roles o documentos específicos?
- ¿Depende la decisión del inquilino, estado del caso, clasificación del documento o vencimiento?
- ¿Se requiere una marca de agua en la salida imprimible?
- ¿Deben auditarse los eventos de impresión?
- ¿Puede un usuario imprimir una revisión anterior del documento?
- ¿Qué debe suceder cuando los permisos cambian mientras la vista previa está abierta?
Evite un único Boolean global cuando la regla real es contextual. Modele la impresión como una operación propia para que pueda autorizarse de forma independiente de la visualización y la descarga.
2. Separe el estado de la UI de la autorización
La página anfitriona puede decidir si muestra un control de impresión después de recibir un resultado de permiso gestionado por la aplicación. Eso mejora la claridad para los usuarios que no pueden imprimir.
Sin embargo, ocultar un control no constituye un límite de autorización. Un usuario aún puede llamar directamente a un endpoint conocido, reproducir una solicitud anterior o invocar la impresión del navegador sobre el contenido visible. Cada ruta del servidor que genere salida imprimible debe aplicar la misma política.
Utilice estados distintos en la UI:
| Estado | Comportamiento del visor | Comportamiento del servidor |
|---|---|---|
| Impresión permitida | Mostrar la acción de impresión soportada | Autorizar y crear la salida solicitada |
| Impresión denegada | Ocultar o desactivar la acción con una explicación clara | Devolver una respuesta prohibida |
| Política desconocida | Mantener la acción no disponible mientras se carga el permiso | No crear salida |
| Sesión expirada | Solicitar al usuario que se vuelva a autenticar | Rechazar la solicitud obsoleta |
3. Proteja el endpoint de impresión
Proteja la operación de la aplicación que invoca la impresión o devuelve salida imprimible. La decisión de autorización debe tener en cuenta la pertenencia al inquilino, la propiedad, la clasificación, el estado del flujo de trabajo y la revisión del documento. Resuelva el documento en el servidor en lugar de aceptar una ruta o URL de almacenamiento suministrada por el cliente.
Si su aplicación imprime a través de una ruta específica del visor en lugar de crear un PDF, aplique la misma autorización antes de invocar esa ruta.
4. Configure la versión del visor instalada
Una vez que exista la regla del servidor, configure la UI de Doconut usando la opción exacta documentada para el paquete y los archivos de ejemplo incluidos con su versión. Las demos en vivo de Doconut le permiten observar el comportamiento del visor soportado antes de comprometerse con una integración concreta. Verifique:
- Dónde se establece la opción: configuración del servidor, modelo de vista o inicialización del cliente.
- Si oculta un elemento de la barra de herramientas, desactiva una acción o afecta la salida generada.
- Si el valor se aplica por instancia del visor o globalmente.
- Si la impresión y la exportación son operaciones separadas.
- Si una actualización cambió el nombre o el valor predeterminado de la opción.
Considere el ejemplo oficial como la fuente de verdad. Un nombre de propiedad que parezca plausible no es evidencia suficiente de que el visor instalado lo reconozca.
5. Manejar la impresión del navegador honestamente
Una configuración del visor no puede garantizar que la información visible nunca se imprima o capture. El navegador puede imprimir la página anfitriona, y los usuarios pueden tomar capturas de pantalla o fotografías. La intercepción del teclado y el CSS específico para impresión pueden mejorar la experiencia esperada, pero son medidas del lado del cliente que pueden ser eludidas.
Si la página anfitriona no debe producir una copia impresa útil, su aplicación puede usar su propia presentación específica para impresión para reemplazar la vista previa con un mensaje explicativo. Mantenga ese comportamiento de la página anfitriona separado de los controles de visor documentados de Doconut.
No describa esto como protección de documentos. Utilice renderizado del lado del servidor, autorización, exportaciones controladas y marcas de agua visibles cuando su evaluación de riesgos requiera una disuasión más fuerte.
6. Mantener la descarga, exportación e impresión separadas
Los usuarios y desarrolladores a menudo tratan esto como un único interruptor de “solo lectura”, pero representan flujos de datos diferentes:
- Ver muestra el contenido renderizado.
- Descargar devuelve la fuente u otro archivo almacenado.
- Exportar crea un formato derivado.
- Imprimir produce una representación imprimible o invoca la impresión del navegador.
Autorice cada operación explícitamente. Un usuario que no pueda imprimir aún puede tener permiso para descargar, o viceversa. Su barra de herramientas debe reflejar las decisiones del servidor en lugar de definirlas.
7. Añadir eventos de auditoría útiles
Si la impresión es sensible, registre la decisión sin registrar el propio documento. Un evento puede incluir al usuario, inquilino, identificador del documento, revisión, resultado de la política, marca de tiempo y ID de correlación.
Registre tanto los intentos exitosos como los denegados. Si el servicio de impresión crea un archivo temporal, también registre si su limpieza se completó. Mantenga las rutas de archivo, tokens, títulos de documentos que contengan datos personales y el contenido imprimible fuera de los registros rutinarios.
8. Probar más allá del botón faltante
La barra de herramientas es solo la primera afirmación. Añada pruebas para toda la operación:
Usuario autorizado
- La acción de impresión prevista es visible.
- La solicitud de impresión tiene éxito para un documento permitido.
- Se utiliza la revisión correcta.
- Las marcas requeridas aparecen en la salida generada.
- El evento de auditoría registra el éxito.
Usuario no autorizado
- La acción está ausente o deshabilitada.
- Una solicitud directa a la ruta de impresión devuelve una respuesta prohibida.
- Cambiar el ID del documento no elude la regla.
- Una URL copiada de una sesión autorizada no puede reutilizarse indebidamente.
- La denegación no revela si otro inquilino posee el documento.
Cambios de estado
- El permiso revocado durante una sesión se aplica en la siguiente solicitud de impresión.
- Una sesión expirada no puede imprimir.
- Un documento eliminado o reemplazado produce un error controlado.
- La salida de impresión temporal sigue la regla de retención configurada.
La automatización del navegador puede verificar el estado visible y el código de respuesta. Las pruebas de integración deben verificar la evaluación de la política y la autorización a nivel de documento de forma independiente.
Preguntas comunes
¿Ocultar el botón de imprimir detiene el atajo de impresión del navegador?
No. Elimina una acción prevista del visor solo si el visor instalado implementa ese comportamiento. La impresión del navegador y la captura de pantalla requieren consideraciones separadas y no pueden evitarse completamente con código del lado del cliente.
¿Debe incluirse el permiso de impresión en la URL de visualización?
Prefiera una decisión de autorización del lado del servidor vinculada al usuario autenticado, al documento y a la operación. Si una referencia temporal lleva permisos, delimítela estrechamente, protégala de los registros y referenciadores, y vuelva a validar las acciones sensibles.
¿Desactivar la impresión es suficiente para documentos confidenciales?
No. Es un control de usabilidad o disuasión. Los flujos de trabajo confidenciales también requieren protección del almacenamiento, autorización a nivel de objeto, exportaciones controladas, reglas de retención, monitoreo y un modelo de riesgo residual aceptado.
Conclusión
Una implementación confiable del control de impresión de Doconut comienza en el servidor y termina en la interfaz. Defina la política, proteja la operación, configure solo la opción documentada para su visor instalado, explique el resultado a los usuarios y pruebe las solicitudes directas así como la visibilidad de la barra de herramientas. Utilice la página oficial de la función, la documentación, las descargas y las demostraciones como fuentes de implementación en lugar de recrear el código del producto en el artículo.