public static void ExportToPdf(this Report report ,string path) { using (PdfSurface pdfSurface = new PdfSurface ( path,report.WidthWithMargins,report.HeightWithMargins)) { Cairo.Context cr = new Cairo.Context (pdfSurface); cr.Translate(report.Margin.Left,report.Margin.Top); ReportRenderer renderer = new ReportRenderer (){ Context = cr}; renderer.RegisterRenderer (typeof(TextBlock), new TextBlockRenderer ()); renderer.RegisterRenderer (typeof(Line), new LineRenderer ()); renderer.RegisterRenderer (typeof(Image), new ImageRenderer (){ PixbufRepository = new PixbufRepository(report.ResourceRepository)}); SectionRenderer sr = new SectionRenderer(); renderer.RegisterRenderer(typeof(ReportHeaderSection), sr); renderer.RegisterRenderer(typeof(ReportFooterSection), sr); renderer.RegisterRenderer(typeof(DetailSection), sr); renderer.RegisterRenderer(typeof(PageHeaderSection), sr); renderer.RegisterRenderer(typeof(PageFooterSection), sr); MonoReports.Model.Engine.ReportEngine engine = new MonoReports.Model.Engine.ReportEngine (report,renderer); engine.Process (); for (int i = 0; i < report.Pages.Count; ++i) { renderer.RenderPage (report.Pages [i]); cr.ShowPage (); } pdfSurface.Finish (); (cr as IDisposable).Dispose (); } }
public static void ExportToPdf(this Report report, string path) { using (PdfSurface pdfSurface = new PdfSurface( path, report.WidthWithMargins, report.HeightWithMargins)) { Cairo.Context cr = new Cairo.Context(pdfSurface); cr.Translate(report.Margin.Left, report.Margin.Top); ReportRenderer renderer = new ReportRenderer() { Context = cr }; renderer.RegisterRenderer(typeof(TextBlock), new TextBlockRenderer()); renderer.RegisterRenderer(typeof(Line), new LineRenderer()); renderer.RegisterRenderer(typeof(Image), new ImageRenderer() { PixbufRepository = new PixbufRepository(report.ResourceRepository) }); SectionRenderer sr = new SectionRenderer(); renderer.RegisterRenderer(typeof(ReportHeaderSection), sr); renderer.RegisterRenderer(typeof(ReportFooterSection), sr); renderer.RegisterRenderer(typeof(DetailSection), sr); renderer.RegisterRenderer(typeof(PageHeaderSection), sr); renderer.RegisterRenderer(typeof(PageFooterSection), sr); MonoReports.Model.Engine.ReportEngine engine = new MonoReports.Model.Engine.ReportEngine(report, renderer); engine.Process(); for (int i = 0; i < report.Pages.Count; ++i) { renderer.RenderPage(report.Pages [i]); cr.ShowPage(); } pdfSurface.Finish(); (cr as IDisposable).Dispose(); } }
public static void Write(string fileName) { Diagram diagram = Program.Load(fileName); string pdfName = System.IO.Path.ChangeExtension(fileName, "pdf"); if(diagram != null) { try { using(PdfSurface pdfs = new PdfSurface(pdfName, 595, 842)) { using(Context cr = new Context(pdfs)) { DiagramRenderer dr = new DiagramRenderer(cr, 0, 0, diagram); cr.LineWidth = 1.0; cr.Color = new Color(0.0, 0.0, 0.0); dr.Render(); pdfs.SetSize(dr.width, dr.height); dr.Draw(); cr.ShowPage(); } } Console.WriteLine("Wrote {0}", pdfName); } catch { Console.WriteLine("Error writing {0}", pdfName); } } }
void salto_de_pagina(Cairo.Context cr, Pango.Layout layout) { if (comienzo_linea > 700) { cr.ShowPage(); comienzo_linea = 105; imprime_encabezado(cr, layout); } }
void salto_de_pagina(Cairo.Context cr, Pango.Layout layout) { if (comienzo_linea > 530) { cr.ShowPage(); Pango.FontDescription desc = Pango.FontDescription.FromString("Sans"); fontSize = 8.0; desc.Size = (int)(fontSize * pangoScale); layout.FontDescription = desc; comienzo_linea = 90; numpage += 1; imprime_encabezado(cr, layout); } }
void salto_de_pagina(Cairo.Context cr, Pango.Layout layout) { //context.PageSetup.Orientation = PageOrientation.Landscape; if (comienzo_linea > 660) { cr.ShowPage(); Pango.FontDescription desc = Pango.FontDescription.FromString("Sans"); fontSize = 8.0; desc.Size = (int)(fontSize * pangoScale); layout.FontDescription = desc; comienzo_linea = 145; imprime_encabezado(cr, layout); } }
public static void Main(string[] args) { // call the snippets Snippets snip = new Snippets(); Surface surface = new PSSurface("snippets.ps", IMAGE_WIDTH, IMAGE_WIDTH); Context cr = new Context(surface); foreach (string snippet in Snippets.snippets) { cr.Save(); Snippets.InvokeSnippet(snip, snippet, cr, IMAGE_WIDTH, IMAGE_HEIGHT); cr.ShowPage(); cr.Restore(); } surface.Finish (); }
void salto_de_pagina(Cairo.Context cr, Pango.Layout layout, string descripcion_almacen, string numerosolicitud, string fechaenvio, string idusuario, string nombreusr, string numeroatencion, string pidpaciente, string nombrepaciente, string tiposolicitud, string procedimientoqx, string diagnosticoqx, string obs_solicitud) { //context.PageSetup.Orientation = PageOrientation.Landscape; if (comienzo_linea > 660) { cr.ShowPage(); Pango.FontDescription desc = Pango.FontDescription.FromString("Sans"); fontSize = 8.0; desc.Size = (int)(fontSize * pangoScale); layout.FontDescription = desc; comienzo_linea = 135; numpage += 1; imprime_encabezado(cr, layout, descripcion_almacen, numerosolicitud, fechaenvio, idusuario, nombreusr, numeroatencion, pidpaciente, nombrepaciente, tiposolicitud, procedimientoqx, diagnosticoqx, obs_solicitud); } }
public static void Main(string[] args) { // call the snippets Snippets snip = new Snippets(); foreach (string snippet in Snippets.snippets) { string filename = "./" + snippet + ".svg"; Surface surface = new SvgSurface(filename, IMAGE_WIDTH, IMAGE_WIDTH); Context cr = new Context(surface); cr.Save(); Snippets.InvokeSnippet(snip, snippet, cr, IMAGE_WIDTH, IMAGE_HEIGHT); cr.ShowPage(); cr.Restore(); surface.Finish (); } }
public static void Write(string fileName) { Diagram diagram = Program.Load(fileName); string psName = System.IO.Path.ChangeExtension(fileName, "ps"); if(diagram != null) { try { // It seems the page size cannot be made smaller // using SetSize(), only larger. Start with a // small surface and enlarge it after layout. using(PSSurface pss = new PSSurface(psName, 10, 10)) { using(Context cr = new Context(pss)) { DiagramRenderer dr = new DiagramRenderer(cr, 0, 0, diagram); cr.LineWidth = 1.0; cr.Color = new Color(0.0, 0.0, 0.0); dr.Render(); pss.SetSize(dr.width, dr.height); dr.Draw(); cr.ShowPage(); } } Console.WriteLine("Wrote {0}", psName); } catch { Console.WriteLine("Error writing {0}", psName); } } }
void ejecutar_consulta_reporte(PrintContext context) { int numero_solicitud; int numero_almacen; int contador_productos = 0; string toma_descrip_prod; string fechaautorizacion = ""; string comentario = ""; string nombrepaciente = ""; string tiposolictud = "SOLICITUD A PACIENTE "; Cairo.Context cr = context.CairoContext; Pango.Layout layout = context.CreatePangoLayout(); Pango.FontDescription desc = Pango.FontDescription.FromString("Sans"); fontSize = 7.0; layout = context.CreatePangoLayout(); desc.Size = (int)(fontSize * pangoScale); layout.FontDescription = desc; NpgsqlConnection conexion; conexion = new NpgsqlConnection(connectionString + nombrebd); // Verifica que la base de dato s este conectada try{ conexion.Open(); NpgsqlCommand comando; comando = conexion.CreateCommand(); comando.CommandText = query_general; //Console.WriteLine(comando.CommandText); NpgsqlDataReader lector = comando.ExecuteReader(); if (lector.Read()) { numero_solicitud = (int)lector["folio_de_solicitud"]; numero_almacen = (int)lector["idalmacen"]; toma_descrip_prod = (string)lector["descripcion_producto"]; nombrepaciente = (string)lector["nombre1_paciente"].ToString().Trim() + " " + (string)lector["nombre2_paciente"].ToString().Trim() + " " + (string)lector["apellido_paterno_paciente"].ToString().Trim() + " " + (string)lector["apellido_materno_paciente"].ToString().Trim(); if (toma_descrip_prod.Length > 69) { toma_descrip_prod = toma_descrip_prod.Substring(0, 68); } if ((string)lector["fecha_autorizado"] == "02-01-2000") { fechaautorizacion = ""; } else { fechaautorizacion = (string)lector["fecha_autorizado"]; } if ((bool)lector["solicitud_stock"] == true) { tiposolictud = "SOLICITUD PARA STOCK DEL SUB-ALAMACEN"; } else { tiposolictud = "SOLICITUD A PACIENTE"; } if ((bool)lector["pre_solicitud"] == true) { tiposolictud = "PRE-SOLICITUD PARA CIRUGIAS PROGRAMADAS"; nombrepaciente = (string)lector["nombre_paciente"].ToString().Trim(); } else { tiposolictud = "SOLICITUD A PACIENTE"; } //comprueba las notas de los resultado en el reporte if ((bool)lector["sin_stock"] == true) { comentario = "sin stock"; } if ((bool)lector["solicitado_erroneo"] == true) { comentario = "Pedido Erroneo"; } if ((bool)lector["surtido"] == true) { comentario = "surtido"; } if (float.Parse((string)lector["cantaut"]) == 0 && (bool)lector["sin_stock"] == false && (bool)lector["solicitado_erroneo"] == false && (bool)lector["surtido"] == false) { comentario = "No surtido"; } imprime_encabezado(cr, layout, (string)lector["descripcion_almacen"], (string)lector["foliosol"], (string)lector["fecha_envio"], (string)lector["id_quien_solicito"], (string)lector["nombreempl"], (string)lector["foliodeatencion"].ToString().Trim(), (string)lector["pidpaciente"].ToString().Trim(), nombrepaciente, tiposolictud + " " + (string)lector["tipo_solicitud"].ToString().Trim(), (string)lector["procedimiento_qx"].ToString().Trim(), (string)lector["diagnostico_qx"].ToString().Trim(), (string)lector["observaciones_solicitud"].ToString()); cr.MoveTo(15 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText((string)lector["cantsol"]); Pango.CairoHelper.ShowLayout(cr, layout); cr.MoveTo(60 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText((string)lector["idproducto"]); Pango.CairoHelper.ShowLayout(cr, layout); cr.MoveTo(120 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText(toma_descrip_prod); Pango.CairoHelper.ShowLayout(cr, layout); cr.MoveTo(405 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText((string)lector["cantaut"]); Pango.CairoHelper.ShowLayout(cr, layout); cr.MoveTo(465 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText(fechaautorizacion); Pango.CairoHelper.ShowLayout(cr, layout); cr.MoveTo(520 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText(comentario); Pango.CairoHelper.ShowLayout(cr, layout); contador_productos += 1; comienzo_linea += separacion_linea; while (lector.Read()) { if (numero_solicitud != (int)lector["folio_de_solicitud"] || numero_almacen != (int)lector["idalmacen"]) { cr.MoveTo(05 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText("Productos Solicitados :" + contador_productos.ToString()); Pango.CairoHelper.ShowLayout(cr, layout); nombrepaciente = (string)lector["nombre1_paciente"].ToString().Trim() + " " + (string)lector["nombre2_paciente"].ToString().Trim() + " " + (string)lector["apellido_paterno_paciente"].ToString().Trim() + " " + (string)lector["apellido_materno_paciente"].ToString().Trim(); numero_solicitud = (int)lector["folio_de_solicitud"]; numero_almacen = (int)lector["idalmacen"]; if ((bool)lector["solicitud_stock"] == true) { tiposolictud = "SOLICITUD PARA STOCK DEL SUB-ALAMACEN"; } if ((bool)lector["pre_solicitud"] == true) { tiposolictud = "PRE-SOLICITUD PARA CIRUGIAS PROGRAMADAS"; nombrepaciente = (string)lector["nombre_paciente"].ToString().Trim(); } if ((bool)lector["solicitud_stock"] == false && (bool)lector["pre_solicitud"] == false) { tiposolictud = "SOLICITUD A PACIENTE"; } cr.ShowPage(); comienzo_linea = 135; contador_productos = 0; imprime_encabezado(cr, layout, (string)lector["descripcion_almacen"], (string)lector["foliosol"], (string)lector["fecha_envio"], (string)lector["id_quien_solicito"], (string)lector["nombreempl"], (string)lector["foliodeatencion"].ToString().Trim(), (string)lector["pidpaciente"].ToString().Trim(), nombrepaciente, tiposolictud + " " + (string)lector["tipo_solicitud"].ToString().Trim(), (string)lector["procedimiento_qx"].ToString().Trim(), (string)lector["diagnostico_qx"].ToString().Trim(), (string)lector["observaciones_solicitud"].ToString()); } toma_descrip_prod = (string)lector["descripcion_producto"]; if (toma_descrip_prod.Length > 69) { toma_descrip_prod = toma_descrip_prod.Substring(0, 68); } if ((string)lector["fecha_autorizado"] == "02-01-2000") { fechaautorizacion = ""; } else { fechaautorizacion = (string)lector["fecha_autorizado"]; } //comprueba las notas de los resultado en el reporte if ((bool)lector["sin_stock"] == true) { comentario = "sin stock"; } if ((bool)lector["solicitado_erroneo"] == true) { comentario = "Pedido Erroneo"; } if ((bool)lector["surtido"] == true) { comentario = "surtido"; } if (float.Parse((string)lector["cantaut"]) == 0 && (bool)lector["sin_stock"] == false && (bool)lector["solicitado_erroneo"] == false && (bool)lector["surtido"] == false) { comentario = "No surtido"; } cr.MoveTo(15 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText((string)lector["cantsol"]); Pango.CairoHelper.ShowLayout(cr, layout); cr.MoveTo(60 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText((string)lector["idproducto"]); Pango.CairoHelper.ShowLayout(cr, layout); cr.MoveTo(120 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText(toma_descrip_prod); Pango.CairoHelper.ShowLayout(cr, layout); cr.MoveTo(405 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText((string)lector["cantaut"]); Pango.CairoHelper.ShowLayout(cr, layout); cr.MoveTo(465 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText(fechaautorizacion); Pango.CairoHelper.ShowLayout(cr, layout); cr.MoveTo(520 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText(comentario); Pango.CairoHelper.ShowLayout(cr, layout); contador_productos += 1; comienzo_linea += separacion_linea; salto_de_pagina(cr, layout, (string)lector["descripcion_almacen"], (string)lector["foliosol"], (string)lector["fecha_envio"], (string)lector["id_quien_solicito"], (string)lector["nombreempl"], (string)lector["foliodeatencion"].ToString().Trim(), (string)lector["pidpaciente"].ToString().Trim(), nombrepaciente, tiposolictud, (string)lector["procedimiento_qx"].ToString().Trim(), (string)lector["diagnostico_qx"].ToString().Trim(), (string)lector["observaciones_solicitud"].ToString()); } cr.MoveTo(05 * escala_en_linux_windows, comienzo_linea * escala_en_linux_windows); layout.SetText("Productos Solicitados :" + contador_productos.ToString()); Pango.CairoHelper.ShowLayout(cr, layout); } }catch (NpgsqlException ex) { MessageDialog msgBoxError = new MessageDialog(MyWinError, DialogFlags.DestroyWithParent, MessageType.Warning, ButtonsType.Ok, "PostgresSQL error: {0}", ex.Message); msgBoxError.Run(); msgBoxError.Destroy(); Console.WriteLine("PostgresSQL error: {0}", ex.Message); } }