Files
advertising-profit-control/AdvertsingProfitControl/ReportGenerator.cs
T

51 lines
1.8 KiB
C#

using System;
using System.Drawing.Printing;
using System.IO;
using System.Linq;
using System.Web.UI;
using Pechkin;
namespace AdvertsingProfitControl
{
internal class ReportGenerator
{
public readonly string Version = "1.0.0.0";
public void GeneratePdfReport(DateTime date)
{
var stringWriter = new StringWriter();
var writer = new HtmlTextWriter(stringWriter);
var front = new FrontPageGenerator();
var back = new BackPageGenerator();
front.BuildReportFrontPage(date, ref writer);
back.BuildReportBackPage(date, ref writer);
using (var streamWriter = new StreamWriter("C:\\Users\\Crypto\\Desktop\\Full.html"))
{
streamWriter.WriteLine(stringWriter.ToString());
}
}
public void RenderHtmlCodeToImage(string path, string targetPath)
{
var htmlCode = File.ReadAllLines(path);
var code = htmlCode.Aggregate("", (current, line) => current + "\r\n" + line);
try
{
var pechkin = new SimplePechkin(new GlobalConfig().SetMargins(50,0,0,0).SetPaperSize(PaperKind.A4).SetPaperOrientation(true).SetCopyCount(1));
var pdf = pechkin.Convert(new ObjectConfig().SetZoomFactor(1.25), code);
//var config = new GlobalConfig().SetPaperSize(PaperKind.A4).SetPaperOrientation(true);
//var pdfBuf = new SimplePechkin(config).Convert(code);
using (var fs = new FileStream(targetPath, FileMode.Create, FileAccess.Write))
{
fs.Write(pdf, 0, pdf.Length);
}
}
finally
{
}
}
}
}