51 lines
1.8 KiB
C#
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
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|