Asp.Net MVC İle PDF Oluşturmak | C#

Merhaba, Asp.Net MVC’de PDF oluşturmakla ilgili başarılı bir kütüphane buldum.
İhtiyaç duyan olursa diyerek, kullandığım senaryoyu ve örneği paylaşıyorum:

  • Elimizde bir iade malzeme listesi var.
  • Bunlara bir takip numarası aldık.
  • Bu takip numarası altındaki tüm malzemelerin bir PDF dosyasına çıkılması lazım.
  • Bu PDF’i yazıcıdan çıkarıp iade paketinin üzerine yapıştırıp gönderecek müşteri.

Bunun için Rotativa paketine ihtiyacımız var. Nuget’ten indirebiliriz.
Bir adet CSHTML ekranına ihtiyacımız var. Bu ekranı normal HTML olarak düzenliyoruz.
Yani PDF’te gözükecek şekli bu olacak. Ona göre bir ekran tasarlıyoruz.
Controller tarafında da bu CSHTML’e ait bir metot ve bir tane de takip numarasını input olarak alan ve PDF sayfasına yönlendiren bir metot olması lazım.

Controller tarafı:

public ActionResult PrintPdf(string seciliTakipNo) { Iadelslemleri objIslem = new Iadelslemleri(Session); return new ActionAsPdf( "ReturnPdf", new { takipNo = seciliTakipNo, oturumId = objIslem.GecerliKullanici.OturumId }) { FileName = "Return_" + seciliTakipNo + ".pdf" }; } public ActionResult ReturnPdf(string takipNo, string oturumId) { Iadelslemleri objIslem = new Iadelslemleri(); DtoMalzemeIade dtoMalzemeIade = objIslem.GetirIadeMalzemeList(trackingNumber, oturumId); return View(dtoMalzemeIade); }

CSHTML tarafı:

@model ProjeAdi.Modeller.DtoMalzemeIade @{ ViewBag.Title = "Return"; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>ReturnPdf</title> </head> <body> <div style="padding-top:100px; width:99%; font-size:large;"> <div style="text-align:center;"><h1>Return Document For Firma Adınız</h1></div> <table style="width:100%; font-size:larger;" cellpadding="5" class="mt-4 mb-5"> <tr> <td style="font-weight:bold;">Customer&nbsp;No.</td> <td>:</td> <td>@Model.LstMalzemeIade[0].MusteriNo</td> <td colspan="3" style="text-align:right;"><b>Date</b> : @DateTime.Now.ToString(B2BOrtak.Sabitler.TarihFormati)</td> </tr> <tr> <td style="font-weight:bold;">Customer&nbsp;Name.</td> <td>:</td> <td colspan="4">@Model.LstMalzemeIade[0].MusteriAdi</td> </tr> <tr> <td style="font-weight:bold;">Tracking&nbsp;Number</td> <td>:</td> <td colspan="4">@Request.QueryString["takipNo"]</td> </tr> </table> <table style="width:100%;" cellpadding="7" class="mt-5"> <thead> <tr> <th>Item No.</th> <th>Description</th> <th>Quantity</th> <th>Invoice Number</th> </tr> </thead> <tbody> @foreach (ProjeAdi.Modeller.MalzemeIade iade in Model.LstMalzemeIade) { <tr> <td>@iade.MalzemeNo</td> <td>@iade.Aciklama</td> <td>@iade.Adet</td> <td>@(iade.BagliBelgeTipi + iade.BagliBelgeNo)</td> </tr> } </tbody> </table> </div> </body> </html>

Selamlar.

Leave a Reply

Your email address will not be published.