2017-11-14 20 views
-1

로보기를 저장합니다 Ticket.pdf 확인C# MVC 내가, 내가 이메일로보기의 PNG를 보내려고 오전 PNG HTML 렌더러에 문제가 있지만, 이메일에 내가 0B .PNG PS 얻을 PNG

using (MemoryStream ms = new MemoryStream()) 
     { 

      var pdf = PdfGenerator.GeneratePdf(RenderRazorViewToString("TicketTemplateBig", model), PdfSharp.PageSize.A4); 
      pdf.Save(ms, false); 

      ///////////////// 
      //Bitmap bitmap = new Bitmap(Convert.ToInt32(1024), Convert.ToInt32(1024), System.Drawing.Imaging.PixelFormat.Format32bppArgb); 
      using (MemoryStream ms2 = new MemoryStream()) 
      { 
       //Image image = TheArtOfDev.HtmlRenderer.WinForms.HtmlRender.RenderToImage(RenderRazorViewToString("TicketTemplateBig", model)); 

       Bitmap bitmap = (Bitmap)Image.FromFile(@"C:\logo.png"); 
       bitmap.Save(ms2, ImageFormat.Png); 


       ///////////////// 
       await ms.FlushAsync(); 
       await ms2.FlushAsync(); 
       mm.Attachments.Add(new Attachment(ms, string.Format("Ticket.pdf"), "application/pdf")); 
       streams.Add(ms); 
       mm.Attachments.Add(new Attachment(ms2, string.Format("logo.png"), "application/png")); 
       streams.Add(ms2); 
       await client.SendMailAsync(mm); 
      } 
     } 
입니다
+0

난 당신이 메모리 스트림 MS2에 기록되지 않습니다를 참조로 응용 프로그램/IMG 또는 응용 프로그램/PNG – Glubus

+0

에 응용 프로그램/PNG로 변경하려고합니다. –

+1

이 코드가 실제로 유효한 .ping 파일을 만들 수 있는지 확인 했습니까? 나는 로컬 .png 파일을 가리키는'FileStream'에 글을 쓰고, 먼저 그것을 열 수 있는지 확인하려고한다. 렌더링, 스트림 또는 이메일에 문제가 있는지 여부를 알려줍니다. –

답변

0

효과적으로 편지를 쓰려면 먼저 ms2으로 메일을 보내려고합니다.

mm에 추가하기 전에 ms2 스트림 버퍼를 플러시해야합니다.

+0

아무 것도 변경되지 않았습니다. –

0

문제 :

(대신 "응용 프로그램/PNG로"의 "응용 프로그램/PNG", 아마 문제 또한 사소한 오타) (당신이 ms 위해 그랬던 것처럼 PDF 부분이 제대로 처리 한 이유, 그건) : 스트림이 마지막 위치에 있음

결과 : ms2.Position = 0;

  using (MemoryStream ms = new MemoryStream()) 
     { 

      var pdf = PdfGenerator.GeneratePdf(RenderRazorViewToString("TicketTemplateBig", model), PdfSharp.PageSize.A4); 
      pdf.Save(ms, false); 

      using (MemoryStream ms2 = new MemoryStream()) 
      { 
       Image image = TheArtOfDev.HtmlRenderer.WinForms.HtmlRender.RenderToImage(RenderRazorViewToString("TicketTemplateBig", model)); 
       image.Save(ms2, ImageFormat.Png); 
       ms2.Position = 0; 
       await ms.FlushAsync(); 
       await ms2.FlushAsync(); 
       mm.Attachments.Add(new Attachment(ms, string.Format("Ticket.pdf"), "application/pdf")); 
       mm.Attachments.Add(new Attachment(ms2, string.Format("Ticket.png"), "application/png")); 
       await client.SendMailAsync(mm); 
      } 
     } 

감사합니다 얘들 아