Создание PDF файла при нажатии на кнопку в браузере

11.04.2013

При совместном использовании FastReport .Net с фреймворком ASP.Net MVC существует возможность простого формирования файла в нужном выходном формате при нажатии на кнопку формы.

Добавляем следующий код во View:

 @using (Html.BeginForm("GetFile", "Home"))
 {
         <input id="pdf" type="submit" value="Export to PDF" />
 }

GetFile - имя обработчика результатов сабмита формы в контроллере, Home - имя контроллера, в данном случае файл контроллера HomeController.cs

Добавляем пространство имен в контроллере:

using FastReport.Export.Pdf;

Добавляем нужный метод в контроллер:

        public FileResult GetFile()
        {
            WebReport webReport = new WebReport();

            // привязка данных
            System.Data.DataSet dataSet = new System.Data.DataSet();
            dataSet.ReadXml(report_path + "nwind.xml");
            webReport.Report.RegisterData(dataSet, "NorthWind");
           
            // загружаем нужный файл отчета
            webReport.ReportFile = this.Server.MapPath("~/App_Data/report.frx");

            // строим отчет
            webReport.Report.Prepare();

            // сохраняем в нужном формате в поток
            Stream stream = new MemoryStream();
            webReport.Report.Export(new PDFExport(), stream);
            stream.Position = 0;

            // возвращаем результат в браузер
            return File(stream, "application/zip", "report.pdf");
        }

Привязка данных и загрузка файла отчета показаны для примера. Привязка к данным может быть выполнена непосредственно в самом файле отчета из дизайнера.

Если вам необходим другой формат, то нужно добавить соответствующий uses и вызвать нужный конструктор в строке экспорта.

Например для формата Excel 2007 нужны строки:
using FastReport.Export.OoXML;
...
webReport.Report.Export(new Excel2007Export(), stream);
...
return File(stream, "application/xlsx", "report.xlsx");

.NET Экспорты FastReport MVC .NET Экспорты FastReport MVC
25 марта 2025

Как объединить несколько отчетов в один из FastReport .NET

FastReport .NET — это мощный инструмент для создания и управления отчётами. В данной статье мы рассмотрим, как объединить несколько отчётов в один в FastReport .NET.
11 марта 2025

Как использовать FastReport .NET Avalonia на Fedora Workstation с протоколом Wayland

В данной статье мы разберем, как запустить FastReport .NET Avalonia на операционной системе «Fedora Workstation 39» с протоколом Wayland.
7 марта 2025

Как создать QR-код с картинкой в FastReport .NET

В статье разобрались как вставлять картинку в QR Code из дизайнера отчётов FastReport .NET всего за пару кликов.