Example #1
0
        private async Task generateReport()
        {
            String day     = DateTime.Now.Day.ToString();
            String month   = DateTime.Now.ToString("MMMM");
            String year    = DateTime.Now.Year.ToString();
            String cashier = DBConnect.Username;

            String reportTemplate = "{{ \"day\" : {0}, \"month\" : \"{1}\", \"year\" : {2}, \"cashier\" : \"{3}\", \"sale\" : [ ";

            reportTemplate  = String.Format(reportTemplate, day, month, year, cashier);
            reportTemplate += getReportData() + "] }";

            try {
                var ReportingService = new ReportingService("http://localhost:2000");
                var report           = await ReportingService.RenderAsync("NyKnBxXr", reportTemplate);

                String filePath = "C:\\temp\\" + day + "-" + month + "-" + year + " Corte de Caja.pdf";
                using (var fileStream = File.Create(filePath))
                {
                    report.Content.CopyTo(fileStream);
                    System.Diagnostics.Process.Start(@filePath);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
Example #2
0
        public Stream GetPdf(string viewPath, object model, Phantom phantom)
        {
            var    rgx              = new Regex(@"(src|href)\s?=\s?('|"")/");
            string content          = rgx.Replace(RenderView(viewPath, model), string.Format("$1=$2{0}/", WebConfig.AppServerUrl));
            var    reportingService = new ReportingService(ReportServerUrl);

            if (!string.IsNullOrWhiteSpace(phantom.Header))
            {
                phantom.Header = rgx.Replace(RenderPartialView(phantom.Header, model), string.Format("$1=$2{0}/", WebConfig.AppServerUrl));
            }

            if (!string.IsNullOrWhiteSpace(phantom.Footer))
            {
                phantom.Footer = rgx.Replace(RenderPartialView(phantom.Footer, model), string.Format("$1=$2{0}/", WebConfig.AppServerUrl));
            }

            if (string.IsNullOrWhiteSpace(phantom.Margin))
            {
                phantom.Margin = "6 mm";
            }

            var report = reportingService.RenderAsync(new RenderRequest {
                Template = new Template {
                    Content = content,
                    Engine  = Engine.None,
                    Recipe  = Recipe.PhantomPdf,
                    Phantom = phantom
                }
            }).Result;

            return(report.Content);
        }
Example #3
0
        private static void Main(string[] args)
        {
            var service = new ReportingService("https://playground.jsreport.net");

            using (var fileStream = File.Create("report.pdf"))
            {
                var report = service.RenderAsync("eyaNpy1ho", 11, new {
                    books = new[]
                    {
                        new Book()
                        {
                            name = "A Tale of Two Cities", author = "Charles Dickens", sales = 351
                        },
                        new Book()
                        {
                            name = "The Lord of the Rings", author = "J. R. R. Tolkien", sales = 156
                        },
                        new Book()
                        {
                            name = "The Da Vinci Code", author = "Dan Brown", sales = 280
                        },
                        new Book()
                        {
                            name = "The Hobbit", author = "J. R. R. Tolkien", sales = 170
                        }
                    }
                }).Result;

                report.Content.CopyTo(fileStream);
            }
        }
        public async Task <ActionResult> Print(string curva2, Guid id)
        {
            var consulta = EntityService.GetById(id);
            OdontogramaViewModel consultaDto       = Mapper.Map <OdontogramaViewModel>(consulta);
            ReportingService     _reportingService = new ReportingService("https://simecmexico.jsreportonline.net/", "*****@*****.**", "Simec2015");
            var report = await _reportingService
                         .RenderAsync("ryYnwEtJP", new
            {
                Consulta = consultaDto,
                Imagen   = curva2
            });

            var name = Guid.NewGuid().ToString();

            MemoryStream ms = new MemoryStream();

            report.Content.CopyTo(ms);

            //write to file
            FileStream file = new FileStream(Server.MapPath("~/Content/Reports/" + name + ".pdf"), FileMode.Create, FileAccess.Write);

            ms.WriteTo(file);

            file.Close();
            ms.Close();

            return(Json(new { File = name }, JsonRequestBehavior.AllowGet));
        }
        public async Task <Report> RenderAsync <T>(string template, string format, T content)
        {
            try
            {
                var url    = jsReportServerConfiguration.WebApiUrl();
                var rs     = new ReportingService(url);
                var recipe = MapFormatToRecipe(format);

                logger.LogInformation("Attempting to render report. URL: {Url}, Recipe: {Recipe}", url, recipe);

                var report = await rs.RenderAsync(new RenderRequest
                {
                    Template = new Template
                    {
                        Recipe  = recipe,
                        Engine  = Engine.Handlebars,
                        Content = template
                    },
                    Data = new
                    {
                        trades = content
                    }
                });

                return(report);
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "{Message}", ex.Message);
                throw;
            }
        }
        public virtual async Task <jsreport.Client.Report> ExportExcel()
        {
            ReportingService _reportingService = new ReportingService(ReportServiceUrl);

            _reportingService.HttpClientTimeout = TimeSpan.FromMinutes(Timeout);
            var report = await _reportingService.RenderAsync(new RenderRequest()
            {
                template = new Template()
                {
                    recipe  = ExportRecepie,
                    content = GetBodyTemplate(),
                    engine  = RenderEngine,
                    helpers = GetScriptHelper()
                },
                data    = FetchData(),
                options = new RenderOptions()
                {
                    timeout    = Timeout,
                    additional = new
                    {
                        reports = new { save = true }
                    }
                }
            });

            return(report);
        }
        public async Task ChromePdfTest()
        {
            var result = await _reportingService.RenderAsync(new
            {
                template = new
                {
                    content = "foo",
                    engine  = "none",
                    recipe  = "chrome-pdf"
                }
            });

            using (var reader = new StreamReader(result.Content))
            {
                reader.ReadToEnd().ShouldStartWith("%PDF");
            }
        }
Example #8
0
        public async void render_and_store_result()
        {
            var report = await _reportingService.RenderAsync(new RenderRequest()
            {
                template = new Template()
                {
                    content = "foo", recipe = "html", engine = "jsrender"
                },
                options = new RenderOptions()
                {
                    saveResult = true
                }
            });

            var loadedReport = await _reportingService.ReadReportAsync(report.PermanentLink);

            var reader = new StreamReader(loadedReport.Content);

            var str = reader.ReadToEnd();

            Assert.IsNotNull(str);
        }
Example #9
0
        public async Task <ActionResult> Print(Guid id)
        {
            var consulta = EntityService.GetById(id);
            ConsultasViewModel consultaDto       = Mapper.Map <ConsultasViewModel>(consulta);
            ReportingService   _reportingService = new ReportingService("https://simecmexico.jsreportonline.net/", "*****@*****.**", "Simec2015");
            var report = await _reportingService
                         .RenderAsync("SklbI2aUJv", new
            {
                Consulta = consultaDto,
            });

            FileStreamResult result = new FileStreamResult(report.Content, report.ContentType.MediaType);

            return(result);
        }
Example #10
0
        public static void Main()
        {
            var embededReportingServer = new EmbeddedReportingServer() { PingTimeout = new TimeSpan(0, 0, 100) };
            embededReportingServer.StartAsync().Wait();

            var reportingService = new ReportingService(embededReportingServer.EmbeddedServerUri);
            reportingService.SynchronizeTemplatesAsync().Wait();

            var rs = new ReportingService("http://localhost:2000");
            var r = rs.GetServerVersionAsync().Result;


            var result = rs.RenderAsync("Report1", null).Result;

            Console.WriteLine("Done");
            embededReportingServer.StopAsync().Wait();

        }
Example #11
0
        public static void Main()
        {
            var embededReportingServer = new EmbeddedReportingServer();

            embededReportingServer.StartAsync().Wait();

            var reportingService = new ReportingService(embededReportingServer.EmbeddedServerUri);

            reportingService.SynchronizeTemplatesAsync().Wait();

            var rs = new ReportingService("http://localhost:2000");
            var r  = rs.GetServerVersionAsync().Result;


            var result = rs.RenderAsync("Report1", null).Result;

            Console.WriteLine("Done");
            embededReportingServer.StopAsync().Wait();
        }
        public virtual async Task <jsreport.Client.Report> RenderReport()
        {
            ReportingService _reportingService = new ReportingService(ReportServiceUrl);

            _reportingService.HttpClientTimeout = TimeSpan.FromMinutes(Timeout);
            var report = await _reportingService.RenderAsync(new RenderRequest()
            {
                template = new Template()
                {
                    recipe  = OutputRecepie,
                    content = GetBodyTemplate(),
                    engine  = RenderEngine,
                    helpers = GetScriptHelper(),
                    phantom = new Phantom
                    {
                        header       = GetReportHeaderTemplate(),
                        headerHeight = headerHeight,
                        footer       = GetReportFooterTemplate(),
                        footerHeight = footerHeight,
                        orientation  = orientation,
                        margin       = "5"
                    }
                },

                data    = FetchData(),
                options = new RenderOptions()
                {
                    preview    = true,
                    timeout    = Timeout,
                    additional = new
                    {
                        reports = new { save = true },
                        script  = new
                        {
                            //content = Script
                        }
                    }
                }
            });

            return(report);
        }
Example #13
0
        public static void Main()
        {
            //var embededReportingServer = new EmbeddedReportingServer();
            //embededReportingServer.StartAsync().Wait();

            //var reportingService = new ReportingService(embededReportingServer.EmbeddedServerUri);
            //reportingService.SynchronizeTemplatesAsync().Wait();


            //var settings = new ODataClientSettings { UrlBase = "http://localhost:1337/odata" };
            //var client = new ODataClient(settings);
            //var res = client.GetEntryAsync("users").Result;


            //http://localhost:1337/odata

            var rs = new ReportingService("http://localhost:4000", "admin", "password");

            Parallel.ForEach(Enumerable.Range(1, 1000), new ParallelOptions()
            {
                MaxDegreeOfParallelism = 3
            }, i =>
            {
                Console.WriteLine(i);
                var rep = rs.RenderAsync("X1ltdPq7t", null).Result;
            });

            Console.WriteLine("Done");


            //rs.SynchronizeTemplatesAsync().Wait();
            //rs.SynchronizeTemplatesAsync().Wait();
            //rs.SynchronizeTemplatesAsync().Wait();


            //var result = rs.RenderAsync("Report1", null).Result;

            Console.WriteLine("Done");
            //embededReportingServer.StopAsync().Wait();
        }
Example #14
0
        public async Task <IActionResult> Print(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var prestacao = _prestacaoService.GetById(id.Value);

            if (prestacao == null)
            {
                return(NotFound());
            }

            var prestacaoViewModel = _mapper.Map <PrestacaoViewModel>(prestacao);

            if (prestacao.ImagemComprovante != null)
            {
                prestacaoViewModel.ImagemComprovanteSrc =
                    "data:image;base64," + Convert.ToBase64String(prestacao.ImagemComprovante);
            }

            var jsReportingService = new ReportingService(_jsReportSettings.Uri,
                                                          _jsReportSettings.UsernameEmail, _jsReportSettings.UsernamePassword);

            var htmlToRender = await _viewRenderService.RenderToStringAsync("~/Views/Prestacoes/Print.cshtml",
                                                                            prestacaoViewModel);

            var report = await jsReportingService.RenderAsync(new RenderRequest
            {
                Template = new Template
                {
                    Recipe  = Recipe.ChromePdf,
                    Engine  = Engine.Handlebars,
                    Content = htmlToRender
                }
            });

            return(new FileStreamResult(report.Content, "application/pdf"));
        }
Example #15
0
        public FileStreamResult PdfView(string viewPath, object model)
        {
            var    rgx              = new Regex(@"(src|href)\s?=\s?('|"")/");
            var    content          = RenderView(viewPath, model);
            string result           = rgx.Replace(content, string.Format("$1=$2{0}/", WebConfig.AppServerUrl));
            var    reportingService = new ReportingService(ReportServerUrl);
            var    report           = reportingService.RenderAsync(new RenderRequest {
                Template = new Template {
                    Content = result,
                    Engine  = Engine.None,
                    Recipe  = Recipe.PhantomPdf,
                    Phantom = new Phantom {
                        Format       = PhantomFormat.Letter,
                        HeaderHeight = "0 mm",
                        FooterHeight = "0 mm",
                        Margin       = "6 mm"
                    }
                }
            }).Result;

            return(File(report.Content, MIME_TYPE_PDF));
        }
Example #16
0
        public FileStreamResult PdfView(string viewPath, object model)
        {
            var    rgx              = new Regex(@"(src|href)\s?=\s?('|"")/");
            var    content          = RenderView(viewPath, model);
            string result           = rgx.Replace(content, string.Format("$1=$2{0}/", WebConfig.AppServerUrl));
            var    reportingService = new ReportingService(ReportServerUrl);
            var    report           = reportingService.RenderAsync(new RenderRequest {
                template = new Template {
                    content = result,
                    engine  = "none",
                    recipe  = "phantom-pdf",
                    phantom = new Phantom {
                        format       = "Letter",
                        headerHeight = "0 mm",
                        footerHeight = "0 mm",
                        margin       = "6 mm"
                    }
                }
            }).Result;

            return(File(report.Content, MIME_TYPE_PDF));
        }
Example #17
0
        public static void Main()
        {
            //var embededReportingServer = new EmbeddedReportingServer();
            //embededReportingServer.StartAsync().Wait();

            //var reportingService = new ReportingService(embededReportingServer.EmbeddedServerUri);
            //reportingService.SynchronizeTemplatesAsync().Wait();


            //var settings = new ODataClientSettings { UrlBase = "http://localhost:1337/odata" };
            //var client = new ODataClient(settings);
            //var res = client.GetEntryAsync("users").Result;


            //http://localhost:1337/odata

            var rs = new ReportingService("http://localhost:4000", "admin", "password");

            Parallel.ForEach(Enumerable.Range(1, 1000), new ParallelOptions() {
                MaxDegreeOfParallelism = 3 }, i =>
            {
                Console.WriteLine(i);
                var rep = rs.RenderAsync("X1ltdPq7t", null).Result;
            });

            Console.WriteLine("Done");
            

            //rs.SynchronizeTemplatesAsync().Wait();
            //rs.SynchronizeTemplatesAsync().Wait();
            //rs.SynchronizeTemplatesAsync().Wait();


            //var result = rs.RenderAsync("Report1", null).Result;

            Console.WriteLine("Done");
            //embededReportingServer.StopAsync().Wait();
        }
Example #18
0
        public async static Task Test1()
        {
            var bodyTemplate   = ReadTemplate(Path.Combine("templates", "hello.html"));
            var footerTemplate = ReadTemplate(Path.Combine("templates", "footer.html"));

            var rs = new ReportingService("http://localhost:5488");

            var report = await rs.RenderAsync(new RenderRequest()
            {
                Template = new Template()
                {
                    Recipe  = Recipe.ChromePdf,
                    Engine  = Engine.Handlebars,
                    Content = bodyTemplate,
                    Chrome  = new Chrome {
                        DisplayHeaderFooter = true,
                        FooterTemplate      = footerTemplate,
                        Format       = "A4",
                        MarginBottom = "80px",
                        MarginLeft   = "20px",
                        MarginRight  = "20px",
                        MarginTop    = "20px"
                    }
                },
                Data = new
                {
                    message = "world!"
                }
            });

            using (var file = File.Create("test.pdf"))
            {
                report.Content.Seek(0, SeekOrigin.Begin);
                report.Content.CopyTo(file);
            }
        }