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

update your package-lock.json according to what you have specified in the package.json file

  The objective of the   npm update   command is to update your   package-lock.json   according to what you have specified in the   package.json   file. This is the normal behavior. If you want to update your package.json file, you can use  npm-check-updates :  npm install -g npm-check-updates . You can then use these commands: ncu  Checks for updates from the package.json file ncu -u  Update the package.json file npm update --save  Update your package-lock.json file from the package.json file

Limit Upload File Type Extensions ASP.NET MVC 5

  //-----------------------------------------------------------------------    // <copyright file="AllowExtensionsAttribute.cs" company="None">    //     Copyright (c) Allow to distribute this code and utilize this code for personal or commercial purpose.    // </copyright>    // <author>Asma Khalid</author>    //-----------------------------------------------------------------------       namespace  ImgExtLimit.Helper_Code.Common   {        using  System;        using  System.Collections.Generic;        using  System.ComponentModel.DataAnnotations;        using  System.Linq;      ...

Referenced assembly does not have a strong name

  Steps to create strong named assembly Step 1 : Run visual studio command prompt and go to directory where your DLL located.   For Example my DLL located in  D:/hiren/Test.dll Step 2 : Now create  il file using below command.    D:/hiren> ildasm /all /out=Test.il Test.dll   (this command generate code library) Step 3 : Generate new Key for sign your project.    D:/hiren> sn -k mykey.snk Step 4 : Now sign your library using ilasm command.    D:/hiren> ilasm /dll /key=mykey.snk Test.il so after this step your assembly contains strong name and signed. Jjust add reference this new assembly in your project and compile project its running now. codeproject.com/Tips/341645/Referenced-assembly-does-not-have-a-strong-name