public byte[] GetFileBytes(Report report) { var pages = report.BuildPages(); int width = (int)report.PageWidthPoints; int height = (int)report.PageHeightPoints; string filename = string.Format("gen-{0}.pdf", Guid.NewGuid()); try { using (Cairo.PdfSurface pdf = new Cairo.PdfSurface(filename, width, height)) { using (Cairo.Context g = new Cairo.Context(pdf)) { var render = new fyiReporting.RdlGtkViewer.RenderCairo(g); render.RunPages(pages); } } byte[] bytes = File.ReadAllBytes(filename); return bytes; } finally { if (File.Exists(filename)) { File.Delete(filename); } } }
public byte[] GetFileBytes(Report report) { var pages = report.BuildPages(); int width = (int)report.PageWidthPoints; int height = (int)report.PageHeightPoints; string filename = string.Format("gen-{0}.pdf", Guid.NewGuid()); try { using (Cairo.PdfSurface pdf = new Cairo.PdfSurface(filename, width, height)) { using (Cairo.Context g = new Cairo.Context(pdf)) { var render = new fyiReporting.RdlGtkViewer.RenderCairo(g); render.RunPages(pages); } } byte[] bytes = File.ReadAllBytes(filename); return(bytes); } finally { if (File.Exists(filename)) { File.Delete(filename); } } }
public void BreakOffControlAtMostAtHeight_WithHeightInText_FirstControlAlwaysLowerOrEqualThanHeight() { TextBlockRenderer tbr = new TextBlockRenderer(); using (Cairo.PdfSurface pdf = new Cairo.PdfSurface(System.IO.Path.Combine(System.Environment.CurrentDirectory, "monoreports_tmp_test.pdf"), 600, 800)) { var cr = new Cairo.Context(pdf); TextBlock tb = new TextBlock(); tb.Text = loremIpsum; tb.Location = new Point(10, 50); tb.Width = 89; tb.Height = 40; Control[] tab = null; tab = tbr.BreakOffControlAtMostAtHeight(cr, tb, 120); Assert.LessOrEqual(tab[0].Height, 120); tab = tbr.BreakOffControlAtMostAtHeight(cr, tb, 330); Assert.LessOrEqual(tab[0].Height, 330); //chhamge padding tb.Padding = new Thickness(4, 22, 8, 8); tab = tbr.BreakOffControlAtMostAtHeight(cr, tb, 20); Assert.LessOrEqual(tab[0].Height, 20); tab = tbr.BreakOffControlAtMostAtHeight(cr, tb, 47); Assert.LessOrEqual(tab[0].Height, 47); pdf.Finish(); } }
public void BreakOffControlAtMostAtHeight_WithHeightInText_FirstControlAlwaysLowerOrEqualThanHeight() { TextBlockRenderer tbr = new TextBlockRenderer(); using(Cairo.PdfSurface pdf = new Cairo.PdfSurface( System.IO.Path.Combine( System.Environment.CurrentDirectory, "monoreports_tmp_test.pdf"),600,800)) { var cr = new Cairo.Context(pdf); TextBlock tb = new TextBlock(); tb.Text = loremIpsum; tb.Location = new Point(10,50); tb.Width = 89; tb.Height = 40; Control[] tab = null; tab = tbr.BreakOffControlAtMostAtHeight(cr,tb,120); Assert.LessOrEqual(tab[0].Height,120); tab = tbr.BreakOffControlAtMostAtHeight(cr,tb,330); Assert.LessOrEqual(tab[0].Height,330); //chhamge padding tb.Padding = new Thickness(4,22,8,8); tab = tbr.BreakOffControlAtMostAtHeight(cr,tb,20); Assert.LessOrEqual(tab[0].Height,20); tab = tbr.BreakOffControlAtMostAtHeight(cr,tb,47); Assert.LessOrEqual(tab[0].Height,47); pdf.Finish(); } }