Skip to content

Instantly share code, notes, and snippets.

@jackinf
Created April 2, 2015 15:58
Show Gist options
  • Save jackinf/01e3d1660ce8ff9a76d9 to your computer and use it in GitHub Desktop.
Save jackinf/01e3d1660ce8ff9a76d9 to your computer and use it in GitHub Desktop.
pdf genereerimine
using System;
using System.Drawing;
using System.Net.Mail;
using System.Web;
using EO.Pdf;
using System.IO;
using System.Net;
namespace KopioNiini.ProjectBank.UI.Controllers
{
public partial class PdfController : LocalDefaultController
{
public void GeneratePdfFromUrl()
{
// Option 1: save pdf file as...
var options = new HtmlToPdfOptions();
HttpCookieCollection oCookies = Request.Cookies;
for (int j = 0; j < oCookies.Count - 1; j++)
{
// Convert between the System.Net.Cookie to a System.Web.HttpCookie...
HttpCookie oCookie = oCookies.Get(j);
var oC = new Cookie
{
Domain = oCookie.Domain,
Expires = oCookie.Expires,
Name = oCookie.Name,
Path = oCookie.Path,
Secure = oCookie.Secure,
Value = oCookie.Value
};
options.Cookies.Add(oC);
}
//options.InvisibleElementIds = "sidebar;navBarTop;footer";
options.PageSize = PdfPageSizes.A4;
options.OutputArea = new RectangleF(0.5F, 0.5F, 7.5F, 10F);
options.AdditionalHeaders = new[]
{
"X-Mode-Printing: true",
};
//HtmlToPdf.ConvertUrl(url, @"C:\Users\sergein\Desktop\TestConvertBBig.pdf", options);
var test = "<div id='ShellForm' style='width: 1178px; float: left; padding: 10px; display: block; margin: 0;'> Your order with number 1000008 has been received.</div><div id='ShellForm' style='width: 1178px; float: left; padding: 10px; display: block; margin: 0;'> <table class='details' style='width: 100%; border: 0 none; border-collapse: collapse; margin: 0; padding: 0;'> <thead> <tr> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;' colspan='2'> TILAUS </th> </tr> </thead> <tbody> <tr> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Tilausnumero </td> <td class='left black bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> 1000008 </td> </tr> <tr> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Projektin viite </td> <td class='left black bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> aaa </td> </tr> <tr> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Pankin nimi </td> <td class='left black bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> bank nr1 </td> </tr> <tr> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Tulostuspaikka </td> <td class='left black bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> jack </td> </tr> </tbody> </table> <table class='details' style='width: 100%; border: 0 none; border-collapse: collapse; margin: 0; padding: 0;'> <thead> <tr> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;' colspan='2'> TILAAJA </th> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;' colspan='2'> MAKSAJA </th> </tr> </thead> <tbody> <tr> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Yrityksen nimi </td> <td class='left black bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> KopioNiini4 </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Yrityksen nimi </td> <td class='left black bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> KopioNiini4 </td> </tr> <tr> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Nimi </td> <td class='left black bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> ProjectBank Owner2 </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Nimi </td> <td class='left black bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> KopioNiini4 </td> </tr> <tr> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Tilaajan viite </td> <td class='left black bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> KopioNiini4 </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Maksajan viite </td> <td class='left black bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> </td> </tr> <tr> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Osoite </td> <td class='left black bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> addr 10-2 </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Osoite </td> <td class='left black bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> addr 10-2 </td> </tr> <tr> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Postinumero </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> 35677 </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Postinumero </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> 35677 </td> </tr> <tr> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Puhelinnumero </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> 45435345 </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> ALV-tunnus </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> 41259833 </td> </tr> </table> <table class='files' style='width: 100%; float: left; position: relative; border: 0 none; border-collapse: collapse; margin: 0; padding: 0;'> <thead> <tr> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;' colspan='5'> TIEDOSTOT </th> </tr> <tr> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;'> Tiedoston nimi </th> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;'> Revisio </th> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;'> Polku </th> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;'> V&#228;rillisyys </th> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;'> Lis&#228;tiedot </th> </tr> </thead> <tbody> <tr> <td class='bold' style='font-weight: bold; border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> N&#228;ytt&#246;kuva 2014-1-23 kello 12.44.11.png </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> 1 </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> jack construction bank -&gt; readonly -&gt; N&#228;ytt&#246;kuva 2014-1-23 kello 12.44.11.png </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'>Mustavalko </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> </td> </tr> </tbody> </table> <table class='distribution' style='width: 100%; float: left; position: relative; border: 0 none; border-collapse: collapse; margin: 0; padding: 0;'> <thead> <tr> <th class='title' style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> JAKELULISTAT JA ASETUKSET </th> </tr> <tr> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;'> Sarjat </th> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;'> Viimeistely </th> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;'> Vastaanottajat </th> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;'> Osoite </th> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;'> Toimitus </th> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;'> Toimitusaikatoive </th> </tr> <tbody> </tbody> </table> <table class='details' style='width: 100%; float: left; position: relative; border: 0 none; border-collapse: collapse; margin: 0; padding: 0;'> <tr> <td class='title' style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> Lis&#228;tiedot </td> <td style='border-bottom: 1px solid #C7CFD5; font-size: 11px; padding: 8px 10px;'> qwer </td> </tr> </table></div><div id='ShellForm' style='width: 1178px; float: left; padding: 10px; display: block; margin: 0;'> This is automated message from Kopio Niinin Niini FM system.Best regards, Kopio Niini.</div>";
using (var stream = new MemoryStream())
{
//const string url = @"http://www.facebook.com";
//HtmlToPdf.ConvertUrl(url, stream);
HtmlToPdf.ConvertHtml(test, stream);
ControllerContext.HttpContext.Response.Clear();
ControllerContext.HttpContext.Response.ContentType = "application/pdf";
ControllerContext.HttpContext.Response.BinaryWrite(stream.ToArray());
ControllerContext.HttpContext.Response.AddHeader("content-disposition", "attachment; filename=" + DateTime.Now.ToString("yyyyMMdd") + ".pdf");
ControllerContext.HttpContext.Response.Flush();
ControllerContext.HttpContext.Response.End();
}
// Option 2: Send PDF as email attachement
var memoryStream = new MemoryStream();
//const string url2 = @"http://www.google.com";
//HtmlToPdf.ConvertUrl(url2, memoryStream);
HtmlToPdf.ConvertHtml(test, memoryStream);
//var contentType = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Application.Pdf);
memoryStream.Seek(0, SeekOrigin.Begin);
var attach = new Attachment(memoryStream, "theFile.pdf", "application/pdf");
//attach.ContentDisposition.FileName = "myFile.pdf";
// I guess you know how to send email with an attachment
var credential = new NetworkCredential("[email protected]", "xxx");
var smtpServer = new SmtpClient("smtp.gmail.com")
{
Host = "smtp.gmail.com",
Port = 587,
DeliveryMethod = SmtpDeliveryMethod.Network,
EnableSsl = true,
UseDefaultCredentials = true,
Credentials = credential
};
var mail = new MailMessage { From = new MailAddress("[email protected]"), Subject = "you subject", Body = "your description", Priority = MailPriority.High };
mail.To.Add("[email protected]");
mail.Attachments.Add(attach);
smtpServer.Send(mail);
memoryStream.Flush();
memoryStream.Close();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment