private Document DocumentoEpicrisis() { Document document = new Document(); if (TxtNumExpediente.Text.Trim() != "") { if (lstConsultasPaciente.Items.Count > 0) { if (oCEmpresa.LeeDatosEmpresa() == true && oCPacientes.LeeDatosPaciente(TxtNumExpediente.Text.Trim()) == true) { Section section = document.AddSection(); #region Encabezado (Fecha, Título, Datos Personales y Detalle Opcional) Table tableHeader = document.LastSection.AddTable(); tableHeader.Borders.Visible = true; tableHeader.Borders.Width = 0; Column columnHeader = tableHeader.AddColumn("8cm"); columnHeader.Format.Alignment = ParagraphAlignment.Right; columnHeader = tableHeader.AddColumn("8cm"); columnHeader.Format.Alignment = ParagraphAlignment.Center; Row rowHeader = tableHeader.AddRow(); tableHeader.AddRow(); tableHeader.AddRow(); tableHeader.AddRow(); #region Fecha Paragraph oParagraphDate = rowHeader.Cells[0].AddParagraph(DateTime.Now.Date.ToLongDateString()); oParagraphDate.Format.Font = new MigraDoc.DocumentObjectModel.Font("Arial", 10); rowHeader.Cells[0].MergeRight = 1; #endregion #region Título rowHeader = tableHeader.AddRow(); rowHeader.Cells[0].MergeRight = 1; Paragraph oParagraphTitle = rowHeader.Cells[0].AddParagraph("Epicrisis"); oParagraphTitle.Format.Alignment = ParagraphAlignment.Center; oParagraphTitle.Format.Font = new MigraDoc.DocumentObjectModel.Font("Arial", 26); #endregion tableHeader.AddRow(); tableHeader.AddRow(); tableHeader.AddRow(); #region Datos Personales (Nombre y Cédula) rowHeader = tableHeader.AddRow(); Paragraph oParagraphNombre = rowHeader.Cells[0].AddParagraph(); FormattedText oFormattedTextNombre = oParagraphNombre.AddFormattedText("Nombre: "); oFormattedTextNombre.Bold = true; oFormattedTextNombre.Font.Name = "Segoe UI"; oFormattedTextNombre.Font.Size = 11; oParagraphNombre.Format.Font = new MigraDoc.DocumentObjectModel.Font("Arial", 9); oParagraphNombre.AddText(oCPacientes.Nombre.Trim() + " " + oCPacientes.Apellidos.Trim()); oParagraphNombre.Format.Alignment = ParagraphAlignment.Left; Paragraph oParagraphCedula = rowHeader.Cells[1].AddParagraph(); FormattedText oFormattedTextCedula = oParagraphCedula.AddFormattedText("Cédula: "); oFormattedTextCedula.Bold = true; oFormattedTextCedula.Font.Name = "Segoe UI"; oFormattedTextCedula.Font.Size = 11; oParagraphCedula.Format.Font = new MigraDoc.DocumentObjectModel.Font("Arial", 9); oParagraphCedula.AddText(oCPacientes.Cedula); oParagraphCedula.Format.Alignment = ParagraphAlignment.Left; #endregion tableHeader.AddRow(); tableHeader.AddRow(); #region Detalle Opcional rowHeader = tableHeader.AddRow(); rowHeader.Cells[0].MergeRight = 1; Paragraph oParagraphDetalleOpcional = rowHeader.Cells[0].AddParagraph(); FormattedText oFormattedDetalleOpcional = oParagraphDetalleOpcional.AddFormattedText(textBox1.Text.Trim()); oFormattedDetalleOpcional.Font.Name = "Arial"; oFormattedDetalleOpcional.Font.Size = 10; oParagraphDetalleOpcional.Format.Alignment = ParagraphAlignment.Left; #endregion tableHeader.AddRow(); tableHeader.AddRow(); tableHeader.AddRow(); #endregion #region Tabla de Datos de Consultas if (rdNoIncluirDetallesConsultas.Checked == false) { Table tableData = document.LastSection.AddTable(); tableData.Borders.Visible = true; tableData.Borders.Width = 0.74; tableData.Borders.Color = new MigraDoc.DocumentObjectModel.Color(192, 80, 77); Column columnData = tableData.AddColumn("2.8cm"); columnData.Format.Alignment = ParagraphAlignment.Center; columnData = tableData.AddColumn("3.5cm"); columnData.Format.Alignment = ParagraphAlignment.Center; columnData = tableData.AddColumn("3.5cm"); columnData.Format.Alignment = ParagraphAlignment.Center; columnData = tableData.AddColumn("3.7cm"); columnData.Format.Alignment = ParagraphAlignment.Center; columnData = tableData.AddColumn("3.7cm"); columnData.Format.Alignment = ParagraphAlignment.Center; Row rowData = tableData.AddRow(); rowData.Borders.Top.Clear(); rowData.Borders.Left.Clear(); rowData.Borders.Right.Clear(); rowData.Borders.Bottom.Width = Unit.FromMillimeter(1); Paragraph oParagraphDataHeader = new Paragraph(); oParagraphDataHeader = rowData.Cells[0].AddParagraph("Fecha de Consulta"); oParagraphDataHeader.Format.Font = new MigraDoc.DocumentObjectModel.Font("Times New Roman", 13); oParagraphDataHeader.Format.Font.Bold = true; oParagraphDataHeader = rowData.Cells[1].AddParagraph("Detalle de la Consulta"); oParagraphDataHeader.Format.Font = new MigraDoc.DocumentObjectModel.Font("Times New Roman", 13); oParagraphDataHeader.Format.Font.Bold = true; oParagraphDataHeader = rowData.Cells[2].AddParagraph("Diagnóstico"); oParagraphDataHeader.Format.Font = new MigraDoc.DocumentObjectModel.Font("Times New Roman", 13); oParagraphDataHeader.Format.Font.Bold = true; oParagraphDataHeader = rowData.Cells[3].AddParagraph("Tratamiento"); oParagraphDataHeader.Format.Font = new MigraDoc.DocumentObjectModel.Font("Times New Roman", 13); oParagraphDataHeader.Format.Font.Bold = true; oParagraphDataHeader = rowData.Cells[4].AddParagraph("Exámenes Prescritos"); oParagraphDataHeader.Format.Font = new MigraDoc.DocumentObjectModel.Font("Times New Roman", 13); oParagraphDataHeader.Format.Font.Bold = true; Paragraph oParagraphData = new Paragraph(); ArrayList oArregloDetallesConsultaEpicrisis = new ArrayList(); int alternateColor = 0; bool continuar = false; foreach (ListViewItem oItem in lstConsultasPaciente.Items) { if (rdTodas.Checked == true) { continuar = true; } else if (rdSeleccionar.Checked == true) { if (oItem.Checked == true) { continuar = true; } else { continuar = false; } } if (continuar == true) { oArregloDetallesConsultaEpicrisis = oCConsultas.DetallesConsultaEpicrisis(oItem.SubItems[1].Text.Trim()); rowData = tableData.AddRow(); //if (alternateColor == 0) // rowData.Shading.Color = new MigraDoc.DocumentObjectModel.Color(239, 211, 210); //else rowData.Shading.Color = Colors.White; oParagraphData = rowData.Cells[0].AddParagraph(Convert.ToDateTime(oItem.SubItems[3].Text).ToShortDateString()); oParagraphData.Format.Font = new MigraDoc.DocumentObjectModel.Font("Times New Roman", 12); oParagraphData.Format.Font.Bold = true; oParagraphData.Format.Font.Color = new MigraDoc.DocumentObjectModel.Color(36, 64, 97); oParagraphData.Format.Alignment = ParagraphAlignment.Center; rowData.Cells[0].Shading.Color = Colors.White; oParagraphData = rowData.Cells[1].AddParagraph(oArregloDetallesConsultaEpicrisis[0].ToString().Trim()); oParagraphData.Format.Font.Bold = false; oParagraphData.Format.Font = new MigraDoc.DocumentObjectModel.Font("Arial", 8); oParagraphData.Format.Alignment = ParagraphAlignment.Left; string oTratamiento = oArregloDetallesConsultaEpicrisis[1].ToString().Trim(); int c = 0; while (oTratamiento.Contains("{") || oTratamiento.Contains("}")) { if (c == 0) { oTratamiento = Metodos_Globales.CortaSeccionDeTexto(oTratamiento, "{", "}", ""); } else { oTratamiento = Metodos_Globales.CortaSeccionDeTexto(oTratamiento, "{", "}", ", "); } c++; } oParagraphData = rowData.Cells[2].AddParagraph(oTratamiento.Trim()); oParagraphData.Format.Font.Bold = false; oParagraphData.Format.Font = new MigraDoc.DocumentObjectModel.Font("Arial", 8); oParagraphData.Format.Alignment = ParagraphAlignment.Left; oParagraphData = rowData.Cells[3].AddParagraph(oArregloDetallesConsultaEpicrisis[2].ToString().Trim()); oParagraphData.Format.Font.Bold = false; oParagraphData.Format.Font = new MigraDoc.DocumentObjectModel.Font("Arial", 8); oParagraphData.Format.Alignment = ParagraphAlignment.Left; string detalleExamen = ""; DataSet ds = oCExamenesConsulta.ConsultarSinParametros(oItem.SubItems[1].Text.Trim()); if (ds != null) { if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { if (Convert.ToBoolean(dr[3]) == true) { detalleExamen = "• " + oCExamenesConsulta.NombreExamen(dr[0].ToString().Trim()) + "(" + dr[5].ToString().Trim() + ")."; } else { detalleExamen = "• " + oCExamenesConsulta.NombreExamen(dr[0].ToString().Trim()) + "(\"Pendiente de resultados\")."; } oParagraphData = rowData.Cells[4].AddParagraph(detalleExamen.Trim()); oParagraphData.Format.Font.Bold = false; oParagraphData.Format.Font = new MigraDoc.DocumentObjectModel.Font("Arial", 8); oParagraphData.Format.Alignment = ParagraphAlignment.Left; oParagraphData.AddLineBreak(); } } ds.Dispose(); } if (alternateColor == 0) { alternateColor = 1; } else { alternateColor = 0; } rowData.Borders.Top.Clear(); rowData.Borders.Left.Clear(); //rowData.Borders.Bottom.Clear(); } } } #endregion #region Agrega Footer Section section2 = document.LastSection; section2.PageSetup.OddAndEvenPagesHeaderFooter = false; HeaderFooter footer = new HeaderFooter(); Paragraph paraFooter = new Paragraph(); MigraDoc.DocumentObjectModel.Font ofont = new MigraDoc.DocumentObjectModel.Font("Arial", 8); paraFooter.AddLineBreak(); ofont.Color = Colors.Black; string nombreEmp = oCEmpleados.ObtieneNombreEmpleado(Program.oIdUsuario); string codEmpleado = oCEmpleados.ObtieneCodigoColegiado(Program.oIdUsuario); string footerText = "________________________________" + Environment.NewLine + nombreEmp.Trim() + Environment.NewLine + "Cód. " + codEmpleado.Trim(); paraFooter.AddFormattedText(footerText, ofont); paraFooter.Format.Alignment = ParagraphAlignment.Right; footer.Add(paraFooter); //section2.Footers.Primary = footer; document.LastSection.Footers.Primary = footer; #endregion #region Crea el documento pdfRenderer = new PdfDocumentRenderer(false, PdfFontEmbedding.Always); pdfRenderer.Document = document; pdfRenderer.RenderDocument(); #endregion } } } oDocument = document; return(document); }