Export webgrid to pdf asp mvc razor

How to export webgrid to .pdf file in mvc.net web application?

+4
source share
2 answers

Here are some ways to do this:

  • You can use RazorPDF as indicated in the previous answer
  • You can use Rotativa . Which works very fast, but you need permissions to run the server on Full Trust, since the PDF conversion takes place in an executable file
  • You can use iTextSharp , which would be the most difficult / cumbersome to implement, but at the same time you have every opportunity to write a PDF document of your choice

Hope this helps -

+1
source

For full help, please follow How to Export Webgrid to PDF in MVC4 Application

Create an action link to the watch page

<div> Export Data : @Html.ActionLink("Export to PDF","GETPdf","Webgrid") </div> 

then create an MVC action to export the webgrid data to a pdf file. Here iTextSharp.dll is used to export the pdf file.

 public FileStreamResult GETPdf() { List<CustomerInfo> all = new List<CustomerInfo>(); using (MyDatabaseEntities dc = new MyDatabaseEntities()) { all = dc.CustomerInfoes.ToList(); } WebGrid grid = new WebGrid(source: all, canPage: false, canSort: false); string gridHtml = grid.GetHtml( columns: grid.Columns( grid.Column("CustomerID", "Customer ID"), grid.Column("CustomerName", "Customer Name"), grid.Column("Address", "Address"), grid.Column("City", "City"), grid.Column("PostalCode", "Postal Code") ) ).ToString(); string exportData = String.Format("<html><head>{0}</head><body>{1}</body></html>", "<style>table{ border-spacing: 10px; border-collapse: separate; }</style>", gridHtml); var bytes = System.Text.Encoding.UTF8.GetBytes(exportData); using (var input = new MemoryStream(bytes)) { var output = new MemoryStream(); var document = new iTextSharp.text.Document(PageSize.A4, 50, 50, 50, 50); var writer = PdfWriter.GetInstance(document, output); writer.CloseStream = false; document.Open(); var xmlWorker = iTextSharp.tool.xml.XMLWorkerHelper.GetInstance(); xmlWorker.ParseXHtml(writer, document, input, System.Text.Encoding.UTF8); document.Close(); output.Position = 0; return new FileStreamResult(output, "application/pdf"); } 
0
source

All Articles