70 lines
2.4 KiB
C#
70 lines
2.4 KiB
C#
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.IO;
|
|
using System.Web.Mvc;
|
|
using FastReport;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.Core;
|
|
using Kreta.Web.Controllers;
|
|
|
|
namespace Kreta.Web.Areas.Tanulo.Helper
|
|
{
|
|
public static class BelepesiAdatokPdfLogic
|
|
{
|
|
public static string GetFileLetoltesUrl(DataSet belepesDataSet, string frxNev, string fileName)
|
|
{
|
|
var stream = PdfNyomtatas(belepesDataSet, frxNev, pdfNeve: fileName);
|
|
|
|
var guid = Cache.Add(stream);
|
|
|
|
var fileFullName = $"{fileName}.pdf";
|
|
|
|
var url = new UrlHelper(System.Web.HttpContext.Current.Request.RequestContext);
|
|
return url.Action(nameof(CacheController.DownloadFile), nameof(CacheController).Replace("Controller", ""), new { guid, fileName = fileFullName, contentType = Core.Constants.ContentTypes.Pdf, area = "" });
|
|
}
|
|
|
|
/// Nyomtatványokhoz Pdf fájl generálás
|
|
private static MemoryStream PdfNyomtatas(DataSet ds, string frxNeve, Dictionary<string, object> parameterek = null, string pdfNeve = "Alap")
|
|
{
|
|
FastReport.Utils.Config.WebMode = true;
|
|
|
|
var report = new Report();
|
|
report.Load(System.Web.Hosting.HostingEnvironment.MapPath((ApplicationData.NyomtatasiSablonokKonyvtar + "/" + frxNeve + ".frx")));
|
|
|
|
foreach (DataTable dt in ds.Tables)
|
|
{
|
|
report.RegisterData(dt, dt.TableName);
|
|
}
|
|
|
|
if (parameterek != null)
|
|
{
|
|
foreach (var parameter in parameterek)
|
|
{
|
|
report.SetParameterValue(parameter.Key, parameter.Value);
|
|
}
|
|
}
|
|
|
|
if (report.Report.Prepare())
|
|
{
|
|
FastReport.Export.Pdf.PDFExport pdfExport = new FastReport.Export.Pdf.PDFExport
|
|
{
|
|
ShowProgress = false,
|
|
Subject = "Subject",
|
|
Title = pdfNeve,
|
|
Compressed = true,
|
|
AllowPrint = true,
|
|
EmbeddingFonts = true
|
|
};
|
|
|
|
var stream = new MemoryStream();
|
|
report.Report.Export(pdfExport, stream);
|
|
report.Dispose();
|
|
pdfExport.Dispose();
|
|
stream.Position = 0;
|
|
|
|
return stream;
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
}
|