Añade un visor de documentos a tu propia aplicación ASP.NET
1/8/2023

Añade un visor de documentos a tu propia aplicación ASP.NET

Has estado abriendo archivos aquí. Incluir el mismo renderizador dentro de tu propia aplicación ASP.NET cambia una cosa que importa: dónde va el documento.

Has estado soltando archivos en este sitio para leerlos. En algún momento alguien pregunta si lo mismo puede vivir dentro de la aplicación en la que trabajas — un expediente, una reclamación, un dibujo, abierto en tu propia página en lugar de descargarse. Puede, y la decisión es más pequeña de lo que parece, porque solo una cosa realmente cambia.

VISOR DE DOCUMENTOS ASP.NET
VISOR DE DOCUMENTOS ASP.NET

La única cosa que cambia: dónde va el archivo

Aquí, subes un documento a nosotros, se renderiza y se elimina cuando lo cierras. Ese es el intercambio correcto para un archivo que te enviaron una vez y quieres leer ahora.

Es el intercambio incorrecto para un documento que no es tuyo para mover. Un registro médico, un contrato firmado, un dibujo bajo NDA — esos no pueden salir de tu infraestructura, y ninguna promesa de eliminación lo soluciona, porque el archivo ya viajó. Incrustar el renderizador lo invierte: el documento lo abre tu servidor, dentro de tu red, y lo que llega al navegador es una representación. El archivo nunca se mueve.

Esa es la razón para incrustar. Todo lo demás es detalle.

Es un componente, no un widget

La parte que la gente se equivoca primero: esto no es JavaScript que abre el archivo en el navegador. Es un componente .NET nativo que referencias desde tu proyecto, y el renderizado ocurre del lado del servidor. Tu página recibe el resultado.

Dos consecuencias siguen. La buena: el navegador no instala nada — sin plugins, sin ActiveX, sin lector — así que funciona igual en un escritorio con restricciones que en un teléfono. La que hay que planear: tu servidor hace el trabajo, así que un PDF de 200 páginas y un dibujo de 40 MB no son la misma solicitud. Dimensiona la máquina para el archivo más grande que aceptarás, y rechaza cualquier cosa mayor en la carga.

Lo que debes decidir antes de comenzar

Tres preguntas, y ninguna de ellas trata sobre el visor:

  • ¿De dónde provienen los documentos? — ¿una base de datos, un recurso compartido de archivos, almacenamiento blob?
  • ¿Quién tiene permiso para ver este documento, y ¿la URL del visor lo hace cumplir o simplemente lo asume? Un punto final de renderizado que responde a cualquiera con el ID del documento es el agujero clásico.
  • ¿Qué ocurre con los archivos temporales que produce el renderizador, y cuándo.

Responde a esas y la integración en sí es corta. Déjalas para después y terminarás retrofitando autorización a un visor que ya funciona, lo cual es peor.

Dónde se ejecuta

.NET Framework 4.0 y superior, y .NET Standard 2.0 y superior — así que WebForms, MVC, ASP.NET Core, Blazor Server y contenedores Linux. Office no necesita estar instalado en el servidor; el renderizador lee los formatos directamente.

Si solo quisieras leer un archivo hoy, eso es para el Visor de PDF y el resto de los visores aquí. Si es la aplicación en la que estás pensando, el componente, sus paquetes y su documentación API están en Doconut.com.