public IActionResult AsInfo(AsInfoViewModel asInfoViewModel, string Command) { ViewBag.Command = Command; if (Command == "Download") { var stream = GeneratePDF(asInfoViewModel); return(File(stream.ToArray(), "application/pdf", "A/S 신청안내.pdf")); } return(View(asInfoViewModel)); }
public MemoryStream GeneratePDF(AsInfoViewModel asInfoViewModel) { System.IO.MemoryStream fs = new MemoryStream(); Document document = new Document(); document.SetPageSize(iTextSharp.text.PageSize.A4); PdfWriter writer = PdfWriter.GetInstance(document, fs); document.Open(); var rootPath = _hostingEnvironment.WebRootPath; //Korean Font var gulim = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIALUNI.TTF"); //Report Header iTextSharp.text.pdf.BaseFont bfntHead = iTextSharp.text.pdf.BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); //iTextSharp.text.Font fntHead = new iTextSharp.text.Font(bfntHead, 16, 1, iTextSharp.text.BaseColor.GRAY); BaseFont fntHead = BaseFont.CreateFont(gulim, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); Font f = new Font(fntHead, 12, Font.NORMAL); Paragraph prgHeading = new Paragraph(); prgHeading.Alignment = Element.ALIGN_CENTER; prgHeading.Add(new Chunk("A/S 신청안내", f)); document.Add(prgHeading); //Add a line seperation Paragraph p = new Paragraph(new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(0.0F, 100.0F, iTextSharp.text.BaseColor.BLACK, Element.ALIGN_LEFT, 1))); document.Add(p); //Add line break document.Add(new Chunk("\n", f)); //Write the table PdfPTable table = new PdfPTable(2); ////Table header //BaseFont btnColumnHeader = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); //Font fntColumnHeader = new Font(btnColumnHeader, 10, 1, iTextSharp.text.BaseColor.WHITE); //for (int i = 0; i < dtblTable.Columns.Count; i++) //{ // PdfPCell cell = new PdfPCell(); // cell.BackgroundColor = Color.GRAY; // cell.AddElement(new Chunk(dtblTable.Columns[i].ColumnName.ToUpper(), fntColumnHeader)); // table.AddCell(cell); //} //table Data table.AddCell(new Phrase("업체명", f)); table.AddCell(new Phrase(asInfoViewModel.CompanyName, f)); table.AddCell(new Phrase("담당자", f)); table.AddCell(new Phrase(asInfoViewModel.Manager, f)); table.AddCell(new Phrase("연락처", f)); table.AddCell(new Phrase(asInfoViewModel.Contact, f)); table.AddCell(new Phrase("FAX", f)); table.AddCell(new Phrase(asInfoViewModel.Fax, f)); table.AddCell(new Phrase("휴대전화", f)); table.AddCell(new Phrase(asInfoViewModel.CellPhone, f)); table.AddCell(new Phrase("이메일", f)); table.AddCell(new Phrase(asInfoViewModel.Email, f)); table.AddCell(new Phrase("제품명", f)); table.AddCell(new Phrase(asInfoViewModel.ProductName, f)); table.AddCell(new Phrase("Serial No.", f)); table.AddCell(new Phrase(asInfoViewModel.SerialNumber, f)); table.AddCell(new Phrase("증상", f)); table.AddCell(new Phrase(asInfoViewModel.Symptom, f)); table.AddCell(new Phrase("내용", f)); table.AddCell(new Phrase(asInfoViewModel.Content, f)); document.Add(table); document.Close(); //writer.Close(); //fs.Close(); return(fs); }