In this article, we will learn how to use iTextSharp in .NET Core
iTextSharp is a free and open-source assembly that helps to convert page output or HTML content into a PDF file.
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Used_iTextSharper.Models { public class Customer { public int CustomerId { get; set; } public string CustomerName { get; set; } public string Address { get; set; } public string Email { get; set; } public string ZipCode { get; set; } } }
using iTextSharp.text; using iTextSharp.text.pdf; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Used_iTextSharper.Models; namespace Used_iTextSharper.Controllers { public class CustomerController : Controller { public IActionResult Index() { return View(); } public ActionResult Customers() { return View(customerData()); } public FileResult CreatePdf() { MemoryStream workStream = new MemoryStream(); StringBuilder status = new StringBuilder(""); DateTime dTime = DateTime.Now; string strPDFFileName = string.Format("CustomerDetailPdf" + dTime.ToString("yyyyMMdd") + "-" + ".pdf"); Document doc = new Document(); doc.SetMargins(0, 0, 0, 0); PdfPTable tableLayout = new PdfPTable(4); doc.SetMargins(10, 10, 10, 0); PdfWriter.GetInstance(doc, workStream).CloseStream = false; doc.Open(); BaseFont bf = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); iTextSharp.text.Font fontInvoice = new iTextSharp.text.Font(bf, 20, iTextSharp.text.Font.NORMAL); Paragraph paragraph = new Paragraph("Customers Detail", fontInvoice); paragraph.Alignment = Element.ALIGN_CENTER; doc.Add(paragraph); Paragraph p3 = new Paragraph(); p3.SpacingAfter = 6; doc.Add(p3); doc.Add(Add_Content_To_PDF(tableLayout)); doc.Close(); byte[] byteInfo = workStream.ToArray(); workStream.Write(byteInfo, 0, byteInfo.Length); workStream.Position = 0; return File(workStream, "application/pdf", strPDFFileName); } protected PdfPTable Add_Content_To_PDF(PdfPTable tableLayout) { float[] headers = { 50, 24, 45, 35 }; //Header Widths tableLayout.SetWidths(headers); //Set the pdf headers tableLayout.WidthPercentage = 100; //Set the PDF File witdh percentage tableLayout.HeaderRows = 1; var count = 1; //Add header AddCellToHeader(tableLayout, "CustomerName"); AddCellToHeader(tableLayout, "Address"); AddCellToHeader(tableLayout, "Email"); AddCellToHeader(tableLayout, "ZipCode"); foreach (var cust in customerData()) { if (count >= 1) { //Add body AddCellToBody(tableLayout, cust.CustomerName.ToString(),count); AddCellToBody(tableLayout, cust.Address.ToString(), count); AddCellToBody(tableLayout, cust.Email.ToString(), count); AddCellToBody(tableLayout, cust.ZipCode.ToString(),count); count++; } } return tableLayout; } private static void AddCellToHeader(PdfPTable tableLayout, string cellText) { tableLayout.AddCell(new PdfPCell(new Phrase(cellText, new Font(Font.FontFamily.HELVETICA, 8, 1, BaseColor.BLACK))) { HorizontalAlignment = Element.ALIGN_LEFT, Padding = 8, BackgroundColor = new iTextSharp.text.BaseColor(255, 255, 255) }); } private static void AddCellToBody(PdfPTable tableLayout, string cellText,int count) { if (count % 2 == 0) { tableLayout.AddCell(new PdfPCell(new Phrase(cellText, new Font(Font.FontFamily.HELVETICA, 8, 1, iTextSharp.text.BaseColor.BLACK))) { HorizontalAlignment = Element.ALIGN_LEFT, Padding = 8, BackgroundColor = new iTextSharp.text.BaseColor(255, 255, 255) }); } else { tableLayout.AddCell(new PdfPCell(new Phrase(cellText, new Font(Font.FontFamily.HELVETICA, 8, 1, iTextSharp.text.BaseColor.BLACK))) { HorizontalAlignment = Element.ALIGN_LEFT, Padding = 8, BackgroundColor = new iTextSharp.text.BaseColor(211, 211, 211) }); } } public List<Customer> customerData() { List<Customer> customers = new List<Customer>() { new Customer(){ CustomerName="Gnanavel Sekar",Address="Surat",Email="GnanavelSekar@gmail.com",ZipCode="395003" }, new Customer(){ CustomerName="Subash S",Address="Ahemdabad",Email="SubashS@gmail.com",ZipCode="395006" }, new Customer(){ CustomerName="Robert A",Address="Surat",Email="RobertA@gmail.com",ZipCode="395005" }, new Customer(){ CustomerName="Ammaiyappan",Address="Vadodara",Email="Ammaiyappan@gmail.com",ZipCode="395004" }, new Customer(){ CustomerName="Huijoyan",Address="Surat",Email="Huijoyan@gmail.com",ZipCode="395008" }, }; return customers; } } }
@model List<Used_iTextSharper.Models.Customer> <style> .text-align-center { text-align:center; } .text-align-right { text-align:right; } </style> <div class="row"> <div class="col-md-12"> <h5 class="text-align-center">Customers Detail</h5> <table class="table table-bordered table-hover table-striped"> <thead> <tr> <th>CustomerName</th> <th>Address</th> <th>Email</th> <th>ZipCode</th> </tr> </thead> <tbody> @foreach (var item in Model) { <tr> <td>@item.CustomerName</td> <td>@item.Address</td> <td>@item.Email</td> <td>@item.ZipCode</td> </tr> } </tbody> </table> </div> </div> <div class="row"> <div class="col-md-12 text-align-right"> <button class="btn btn-success" type="button">@Html.ActionLink("Create PDF", "CreatePdf", "Customer", null)</button> </div> </div>
Downladed PDF for the Customer Detail.
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular