How to download a memoryStream file

I am new to asp.net, I am creating a pdf file with PdfRpt . I am writing this code in class

namespace PdfReportSamples.CustomPriceNumber { public class CustomPriceNumberPdfReport { public IPdfReportData CreatePdfReport() { using (var memoryStream = new MemoryStream()) { var ii= new PdfReport().DocumentPreferences(doc => { doc.RunDirection(PdfRunDirection.LeftToRight); doc.Orientation(PageOrientation.Portrait); doc.PageSize(PdfPageSize.A4); doc.DocumentMetadata(new DocumentMetadata { Author = "Vahid", Application = "PdfRpt", Keywords = "Test", Subject = "Test Rpt", Title = "Test" }); }) .DefaultFonts(fonts => { fonts.Path(Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\arial.ttf", Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\verdana.ttf"); }) .PagesFooter(footer => { footer.DefaultFooter(DateTime.Now.ToString("MM/dd/yyyy")); }) .PagesHeader(header => { header.DefaultHeader(defaultHeader => { defaultHeader.RunDirection(PdfRunDirection.LeftToRight); }); }) .MainTableTemplate(template => { template.BasicTemplate(BasicTemplate.SilverTemplate); }) .MainTablePreferences(table => { table.ColumnsWidthsType(TableColumnWidthType.Relative); }) .MainTableDataSource(dataSource => { var listOfRows = new List<Transaction>(); for (int i = 0; i < 200; i++) { listOfRows.Add(new Transaction { Product = "Item " + i, Description = "Desc. " + i, SalePrice = 1000 * i }); } dataSource.StronglyTypedList(listOfRows); }) .MainTableColumns(columns => { columns.AddColumn(column => { column.PropertyName("rowNo"); column.IsRowNumber(true); column.CellsHorizontalAlignment(HorizontalAlignment.Center); column.IsVisible(true); column.Order(0); column.Width(1); column.HeaderCell("#"); }); columns.AddColumn(column => { column.PropertyName<Transaction>(x => x.Product); column.CellsHorizontalAlignment(HorizontalAlignment.Center); column.IsVisible(true); column.Order(1); column.Width(2); column.HeaderCell("Product"); }); columns.AddColumn(column => { column.PropertyName<Transaction>(x => x.Description); column.CellsHorizontalAlignment(HorizontalAlignment.Center); column.IsVisible(true); column.Order(2); column.Width(3); column.HeaderCell("Description"); }); columns.AddColumn(column => { column.PropertyName<Transaction>(x => x.SalePrice); column.CellsHorizontalAlignment(HorizontalAlignment.Center); column.IsVisible(true); column.Order(3); column.Width(3); column.HeaderCell("Sale Price"); column.ColumnItemsTemplate(template => { template.CustomTemplate(new CustomPriceCell()); }); column.AggregateFunction(aggregateFunction => { aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum); aggregateFunction.DisplayFormatFormula(obj => obj == null ? string.Empty : string.Format("{0:n0}", obj)); }); }); }) .MainTableEvents(events => { events.DataSourceIsEmpty(message: "There is no data available to display."); }) .Export(export => { export.ToExcel(); }) .Generate(data => data.AsPdfStream(memoryStream)); } } } } 

I want the user to click send this file (to memoryStream) for download. but i don't know how to write this code. please, help. thanks to the expert

+1
source share
1 answer
 byte[] bytes = memoryStream.GetBuffer(); Response.Buffer = true; Response.Clear(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment; filename=report.pdf"); Response.BinaryWrite(bytes); Response.Flush(); 
+9
source

Source: https://habr.com/ru/post/903108/


All Articles