Created
April 2, 2015 15:58
-
-
Save jackinf/01e3d1660ce8ff9a76d9 to your computer and use it in GitHub Desktop.
pdf genereerimine
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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ärillisyys </th> <th style='background-color: #EEEEEE; border-bottom: 1px solid #CCCCCC; font-size: 12px; padding: 8px 10px; text-align: left;'> Lisä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äyttö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 -> readonly -> Näyttö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ä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