// ==================================================================================================== // ==================================================================================================== #region MÉTODOS PÚBLICOS EXCEL // ==================================================================================================== /// <summary> /// Devuelve un archivo de Excel en blanco o con la plantilla indicada. /// </summary> public Workbook GetArchivoExcel(TiposInforme tipo = TiposInforme.Ninguno) { // Definimos el libro que se va a devolver. Workbook libro = null; if (tipo == TiposInforme.Ninguno) { // Si no hay una plantilla, creamos un archivo Excel en blanco. libro = ExcelApp.Workbooks.Add(); } else { // Si hay una plantilla creamos un archivo Excel desde la plantilla. string ruta = Utils.CombinarCarpetas(App.RutaInicial, $"/Plantillas/{tipo}.xlsx"); libro = ExcelApp.Workbooks.Add(ruta); } // Devolvemos el libro. return(libro); }
/// <summary> /// Devuelve un PDF que se guardará en la ruta indicada, a partir de la plantilla necesaria para el tipo de informe indicado. /// </summary> /// <param name="ruta">Ruta completa (nombre de archivo incluido) en la que se guardará el PDF.</param> /// <param name="tipo">Tipo de informe que se va a generar.</param> /// <returns>El PDF listo para editar sus elementos.</returns> public iText.Kernel.Pdf.PdfDocument GetPdfDesdePlantilla(string ruta, TiposInforme tipo = TiposInforme.Ninguno) { // Definimos el pdf que se va a devolver. iText.Kernel.Pdf.PdfDocument docPdf = null; // Si hay un tipo de informe creamos el pdf. if (tipo != TiposInforme.Ninguno) { // Definimos la plantilla string plantilla = Utils.CombinarCarpetas(App.RutaInicial, $"/Plantillas/{tipo}.pdf"); // Se crea el Reader con la plantilla necesaria. iText.Kernel.Pdf.PdfReader reader = new iText.Kernel.Pdf.PdfReader(plantilla); // Se crea el Writer con la ruta pasada. iText.Kernel.Pdf.PdfWriter writer = new iText.Kernel.Pdf.PdfWriter(ruta); // Creamos el documento, usando el reader y el writer anteriores. docPdf = new iText.Kernel.Pdf.PdfDocument(reader, writer); // Añadimos los datos de Metadata docPdf.GetDocumentInfo().SetAuthor("Orion - AnderSoft - A.Herrero"); docPdf.GetDocumentInfo().SetCreator("Orion 1.0"); } // Devolvemos el documento. return(docPdf); }
// ==================================================================================================== #region MÉTODOS PÚBLICOS COMUNES // ==================================================================================================== /// <summary> /// Muestra un cuadro de diálogo pidiendo la ruta para un archivo y devuelve la ruta. /// </summary> public string GetRutaArchivo(TiposInforme tipo, string nombreArchivo, bool crearInformeDirectamente, string rutaConductor = "") { string resultado = ""; string rutaparcial = ""; string ruta = ""; switch (tipo) { case TiposInforme.Graficos: ruta = Path.Combine(App.Global.Configuracion.CarpetaInformes, "Graficos\\Tablas"); break; case TiposInforme.GraficoIndividual: ruta = Path.Combine(App.Global.Configuracion.CarpetaInformes, "Graficos\\Individuales"); break; case TiposInforme.Calendarios: ruta = Path.Combine(App.Global.Configuracion.CarpetaInformes, "Calendarios\\Tablas"); break; case TiposInforme.FallosCalendarios: ruta = Path.Combine(App.Global.Configuracion.CarpetaInformes, "Calendarios\\Fallos"); break; case TiposInforme.EstadisticasGraficos: case TiposInforme.EstadisticasGraficosPorCentros: ruta = Path.Combine(App.Global.Configuracion.CarpetaInformes, "Graficos\\Estadisticas"); break; case TiposInforme.Pijama: rutaparcial = "Calendarios\\Pijamas"; if (rutaConductor.Trim() != "") { rutaparcial = "Conductores\\" + rutaConductor.Trim() + "\\Pijamas"; } ruta = Path.Combine(App.Global.Configuracion.CarpetaInformes, rutaparcial); break; case TiposInforme.Reclamacion: rutaparcial = "Reclamaciones"; if (rutaConductor.Trim() != "") { rutaparcial = "Conductores\\" + rutaConductor.Trim() + "\\Reclamaciones"; } ruta = Path.Combine(App.Global.Configuracion.CarpetaInformes, rutaparcial); break; case TiposInforme.EstadisticasCalendarios: ruta = Path.Combine(App.Global.Configuracion.CarpetaInformes, "Calendarios\\Estadisticas"); break; } if (ruta != "") { if (!Directory.Exists(ruta)) { Directory.CreateDirectory(ruta); } if (crearInformeDirectamente) { resultado = Path.Combine(ruta, nombreArchivo); } else { SaveFileDialog dialogo = new SaveFileDialog(); dialogo.Filter = "Archivos PDF|*.pdf|Todos los archivos|*.*"; dialogo.FileName = nombreArchivo; dialogo.InitialDirectory = ruta; dialogo.OverwritePrompt = true; dialogo.Title = "Guardar Informe"; if (dialogo.ShowDialog() == true) { resultado = dialogo.FileName; } } } return(resultado); }