Created
October 6, 2018 06:57
-
-
Save nitinjs/ffa841432c2d8103a0462a4271d52a11 to your computer and use it in GitHub Desktop.
Using iTextSharp combines two template files into one pdf and adds table to the pages
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//iTextSharp | |
using (FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "TableTest.pdf", FileMode.Create)) | |
{ | |
Document doc = new Document(PageSize.LETTER); | |
doc.SetMargins(0, 0, 0, 0); | |
PdfWriter writer = PdfWriter.GetInstance(doc, fs); | |
doc.Open(); | |
//add first page | |
PdfReader pdfReader = new PdfReader(templatePath + "Page1.pdf"); | |
PdfImportedPage page = writer.GetImportedPage(pdfReader, 1); | |
doc.Add(iTextSharp.text.Image.GetInstance(page)); | |
PdfContentByte pcb = writer.DirectContent; | |
PdfPTable table = new PdfPTable(5); | |
table.TotalWidth = doc.PageSize.Width - 90; | |
// header rows | |
table.AddCell(GetCell("Header " + Count, 1, 1)); | |
table.AddCell(GetCell("Header " + Count, 1, 1)); | |
table.AddCell(GetCell("Header " + Count, 1, 1)); | |
table.AddCell(GetCell("Header " + Count, 1, 1)); | |
table.AddCell(GetCell("Header " + Count, 1, 1)); | |
table.CompleteRow(); | |
for (int i = 0; i <= 8; i++) | |
{ | |
// Inner middle row. | |
table.AddCell(GetCell("Content" + Count)); | |
table.AddCell(GetCell("Content" + Count)); | |
table.AddCell(GetCell("Content" + Count)); | |
table.AddCell(GetCell("Content" + Count)); | |
table.AddCell(GetCell("Content" + Count)); | |
table.CompleteRow(); | |
table.WriteSelectedRows(0, -1, 50, doc.PageSize.Height - 140, pcb); | |
page.Add(pcb); | |
} | |
//add second page | |
PdfReader pdfReader2 = null; | |
PdfImportedPage page2 = null; | |
for (int i = 1; i <= 2; i++) | |
{ | |
doc.NewPage(); | |
PdfPTable table2 = new PdfPTable(5); | |
PdfContentByte pcb2 = writer.DirectContent; | |
pdfReader2 = new PdfReader(templatePath + "Page2.pdf"); | |
page2 = writer.GetImportedPage(pdfReader2, 1); | |
doc.Add(iTextSharp.text.Image.GetInstance(page2)); | |
table2.TotalWidth = doc.PageSize.Width - 90; | |
// header rows | |
var y = rowCount; | |
table2.AddCell(GetCell("Header" + y)); | |
table2.AddCell(GetCell("Header" + y)); | |
table2.AddCell(GetCell("Header" + y)); | |
table2.AddCell(GetCell("Header" + y)); | |
table2.AddCell(GetCell("Header" + y)); | |
table2.CompleteRow(); | |
for (int x = 0; x <= 23; x++) | |
{ | |
y = rowCount; | |
if ((y) % 5 == 0) | |
{ | |
table2.AddCell(GetCell("Content" + y)); | |
table2.AddCell(GetCell("Content" + y)); | |
table2.AddCell(GetCell("Content" + y)); | |
table2.AddCell(GetCell("Content" + y)); | |
table2.AddCell(GetCell("Content" + y)); | |
table2.CompleteRow(); | |
y = rowCount; | |
var p = new Phrase(""); | |
PdfPCell cell = new PdfPCell(p); | |
cell.Border = 0; | |
cell.Colspan = 5; | |
cell.Rowspan = 1; | |
cell.PaddingBottom = 15; | |
LineSeparator line = new LineSeparator(1f, 100f, BaseColor.BLACK, Element.ALIGN_LEFT, 1); | |
p.Add(line); | |
table2.AddCell(cell); | |
table2.CompleteRow(); | |
} | |
else | |
{ | |
// Inner middle row. | |
table2.AddCell(GetCell("Content" + y)); | |
table2.AddCell(GetCell("Content" + y)); | |
table2.AddCell(GetCell("Content" + y)); | |
table2.AddCell(GetCell("Content" + y)); | |
table2.AddCell(GetCell("Content" + y)); | |
table2.CompleteRow(); | |
} | |
table2.WriteSelectedRows(0, -1, 50, doc.PageSize.Height - 140, pcb2); | |
page2.Add(pcb2); | |
} | |
} | |
doc.Close(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment