none
Abrir archivos PDF desde C# y SQL Server RRS feed

  • Pregunta

  • Hola!

    He estado desarrollando una aplicación en C#. Lo que hace la aplicación es que a través de un botón al momento de darle clic abre un archivo PDF, para lo cual utilizo el siguiente código:

     Process proceso = new Process();
     proceso.StartInfo.FileName = @"C:\Archivo.pdf";
     proceso.Start();

    Al momento de crear el archivo ejecutable para instalar la aplicación en otra PC no reconoce dicha ubicación ya que los archivos están en mi PC, lo que hago es llevar la carpeta y copiarla en la PC del usuario para que no haya problema, lo cual se vuelve un poco tedioso.

    Mis preguntas son:

    1. ¿Cuál sería el procedimiento que debo realizar para que toda la información se guarde en un mismo lugar al momento de crear el setup y no exista problema alguno cuando la aplicación se instale en la maquina del usuario.

    2. ¿Es posible guardar los archivos PDF en una base de datos y  desde la aplicación a través de un botón llamarlos, y que se puedan ver en cualquier computadora? 

    sábado, 20 de julio de 2019 17:41

Todas las respuestas

  • 1. Si se trata de archivos de solo-lectura que vas a entregar conjuntamente con el programa, entonces configura el instalador para que los instale en la misma carpeta del ejecutable (o en una subcarpeta colgando de la misma). Si el instalador lo estás haciendo mediante un proyecto de instalación de Visual Studio, basta con que añadas los archivos al Proyecto y en las propiedades les pongas que son "contenido". Con eso el instalador los incluye automáticamente.

    Después a la hora de abrirlos les concatenas por la izquierda la ruta de la carpeta del ejecutable (Application.StartupPath), y listo.

    proceso.StartInfo.FileName = System.IO.Path.Combine(Application.StartupPath, "Archivo.pdf");

    2.- Sí, podrías guardar los archivos en una base de datos, pero el programa que muestra los PDF no sabe mostrarlos directamente desde la base de datos, así que tu botón primero tendría que traer el contenido desde la base de datos y salvarlo en un archivo temporal en disco. Después lo muestras desde ese archivo temporal, y cuando termine de ejecutarse el Process, borras el archivo temporal.

    • Propuesto como respuesta eRiver1 lunes, 22 de julio de 2019 5:30
    sábado, 20 de julio de 2019 18:58
    Moderador