Skip to main content

How to show CrystalReport as and Download it in MVC

As there is no way till now to show crystal report in a view(MVC). You can simply convert the report document as pdf using following code:

 public void ShowReport()
        {
            List<ToDos> lstTodos = new List<ToDos>();
            lstTodos = db.ToDos.ToList();
            ReportDocument rd = new ReportDocument();
            rd.Load(Path.Combine(Server.MapPath("CrystalReport1.rpt")));
            rd.SetDataSource(lstTodos);
            Stream stream;
            stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);

            byte[] binarydata;
            binarydata = new Byte[stream.Length];
            stream.Read(binarydata, 0, (int)stream.Length);

            string base64String = "";
            try
            {
                base64String =
                  System.Convert.ToBase64String(binarydata,
                                         0,
                                         binarydata.Length);
            }
            catch (System.ArgumentNullException)
            {
                System.Console.WriteLine("Binary data array is null.");

            }

            string pdfurl = "data:application/pdf;base64," + base64String;

            ViewBag.Url = pdfurl;

        }

And after converting it as PDF use HTML object tag to show pdf document as shown below(using ViewBag.Url):

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<object data="@ViewBag.Url"
        type="application/pdf" style=" height: 991px;margin-left: -32%;margin-top: 5%;width: 98%;"></object>

Comments

Popular posts from this blog

Cannot access a disposed object. A common cause of this error is disposing a context that was

  Cannot access a disposed object. A common cause of this error is disposing a context that was resolved from dependency injection and then later trying to use the same context instance elsewhere in your application. This may occur if you are calling Dispose() on the context, or wrapping the context in a using statement. If you are using dependency injection, you should let the dependency injection container take care of disposing context instances. Object name: 'PropertyContext'.  public class CustomerHub : Hub     {         public readonly ICustomerService _customerService;         private readonly IServiceScopeFactory _serviceScopeFactory;         public CustomerHub(ICustomerService service, IServiceScopeFactory serviceScopeFactory)         {             _customerService = service;             _serviceScopeFactory = serviceSco...

ahara-nidra-bhaya-maithunam

आहर निद्रा भय मैथुनं च सामान्यमेतत पशुभिर्नराणाम् धर्मो हि तेषाम् अधिको विशेषो धर्मेण हीना पशुभिः समाना ahara-nidra-bhaya-maithunam ca samanyam etat pashubhih naranam dharmo hi tesham adhiko vishesho dharmena hina pashubhih samanah Hunger, sleep,fear and sexual desire are the instincts which are common between mankind and beasts (animals). .It is especially 'Dharma;' that mankind possesses additionally, and a person bereft of 'Dharma' is like a beast, “Eating, sleeping, fearing, and mating are the four principles of animal life. These are common both to animals and to human beings. But religion is the extra function of the human being. Without religion, human life is no better than animal life.” -from Mahabharata