public ActionResult Report()
{
var orders = from Order in db.Orders select new { id = Order.Order_id, cost = Order.Total_price };
if (orders == null)
{
return(HttpNotFound());
}
var costs = from Order in db.Orders select Order.Total_price;
if (costs == null)
{
return(HttpNotFound());
}
var totalcost = costs.Sum();
string reportname = @"C:\Users\hone\Desktop\report" + DateTime.Now.ToShortDateString() + ".pdf";
iTextSharp.text.Document report = new iTextSharp.text.Document(PageSize.A4);//отчет
string ttf = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIAL.TTF");
var baseFont = BaseFont.CreateFont(ttf, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
var font = new Font(baseFont, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL);
try
{
PdfWriter.GetInstance(report, new FileStream(reportname, FileMode.CreateNew));
report.Open();
foreach (var order in orders)
{
report.Add(new Paragraph("Заказ №:" + order.id, font));
report.Add(new Paragraph("Общая стоимость:" + order.cost, font));
report.Add(new Paragraph(" ", font));
}
report.Add(new Paragraph("Стоимость всех заказов: " + totalcost, font));
report.Close();
report.Dispose();
// отправка билета в принтер(в комментариях)
// PrintDocument printDoc = new PrintDocument();
//printDoc.DocumentName = filename;
//printDoc.Print();
//printDoc.Dispose();
// удаление билета, чтобы не занимал память, и еще не придумал как сохранять билеты с разными именами
// System.IO.File.Delete(filename);
}
catch (Exception ex)
{
}
finally
{
report.Close();
report.Dispose();
}
return(File(reportname, "MIME"));
}