2017-11-14 10 views
-1

としてビューを保存 私は電子メールで送信するビューのPNGを送信しようとしていますが、電子メールに、私は0B .PNG PSを得る:Ticket.pdfはC#MVCは、私はPNG HTMLレンダラに問題がある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); 
      } 
     } 
okです
+0

はPNG – Glubus

+0

/アプリケーション/ IMGまたはアプリケーションにアプリケーション/ PNG形式を変更してみてください。 –

+1

このコードが実際に有効な.pingファイルを作成できることを確認しましたか?私はローカルの.pngファイルを指している 'FileStream'に書き込んでみて、まずそれを開くことができることを確認します。これは、レンダリング、ストリーム、または電子メールに問題があるかどうかを知らせます。 –

答えて

0

ms2に有効に書き込まれる前にメールを送信しようとしています。

mmに追加する前に、ms2ストリームバッファをフラッシュする必要があります。

+0

何も変更されていません –

0

問題:

(代わりに「アプリケーション/ PNG形式」の「アプリケーション/ PNG」、おそらくいない問題でも、マイナータイプミス)(あなたがmsのために行ったように、PDFの一部が正しく処理された理由、それはです):ストリームが最後の位置にあった

結果:ms2.Position = 0;私はそれはあなたがメモリストリームMS2への書き込みをされていない参照として

  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); 
      } 
     } 

おかげでみんな

関連する問題