Blog

 
1:   using System;
2:   using System.IO;
3:  
4:   using iTextSharp.text;
5:   using iTextSharp.text.pdf;
6:  
7:  
8:   namespace iTextSharp.tutorial.Chap05
9:   {
10:       /// <summary>
11:       /// In some cases, you may want to avoid cells or even the complete table to be split into two parts
12:       /// </summary>
13:       public class Chap0510
14:       {
15:           public Chap0510()
16:           {
17:               Console.WriteLine("Chapter 5 example 10: large tables with repeating headers");
18:               // creation of the document with a certain size and certain margins
19:               Document document new Document(PageSize.A4.Rotate(), 50505050);
20:           
21:               try 
22:               {
23:                   // creation of the different writers
24:                   PdfWriter.GetInstance(documentnew FileStream("Chap0510.pdf"FileMode.Create));
25:               
26:                   // we add some meta information to the document
27:                   document.AddAuthor("Gerald Henson");
28:                   document.AddSubject("This is the result of a Test.");
29:               
30:                   document.Open();
31:               
32:                   Table datatable new Table(10);
33:               
34:                   datatable.Padding 4;
35:                   datatable.Spacing 0;
36:                   //datatable.setBorder(Rectangle.NO_BORDER);
37:                   float[] headerwidths = {10241212777777};
38:                   datatable.Widths headerwidths;
39:                   datatable.WidthPercentage 100;
40:               
41:                   // the first cell spans 10 columns
42:                   Cell cell new Cell(new Phrase("Administration -System Users Report"FontFactory.GetFont(FontFactory.HELVETICA24Font.BOLD)));
43:                   cell.HorizontalAlignment Element.ALIGN_CENTER;
44:                   cell.Leading 30;
45:                   cell.Colspan 10;
46:                   cell.Border Rectangle.NO_BORDER;
47:                   cell.BackgroundColor new Color(0xC00xC00xC0);
48:                   datatable.AddCell(cell);
49:               
50:                   // These cells span 2 rows
51:                   datatable.DefaultCellBorderWidth 2;
52:                   datatable.DefaultHorizontalAlignment 1;
53:                   datatable.DefaultRowspan 2;
54:                   datatable.AddCell("User Id");
55:                   datatable.AddCell(new Phrase("Name"FontFactory.GetFont(FontFactory.HELVETICA14Font.BOLD)));
56:                   datatable.AddCell("Company");
57:                   datatable.AddCell("Department");
58:               
59:                   // This cell spans the remaining 6 columns in 1 row
60:                   datatable.DefaultRowspan 1;
61:                   datatable.DefaultColspan 6;
62:                   datatable.AddCell("Permissions");
63:               
64:                   // These cells span 1 row and 1 column
65:                   datatable.DefaultColspan 1;
66:                   datatable.AddCell("Admin");
67:                   datatable.AddCell("Data");
68:                   datatable.AddCell("Expl");
69:                   datatable.AddCell("Prod");
70:                   datatable.AddCell("Proj");
71:                   datatable.AddCell("Online");
72:               
73:                   // this is the end of the table header
74:                   datatable.EndHeaders();
75:               
76:                   datatable.DefaultCellBorderWidth 1;
77:                   datatable.DefaultRowspan 1;
78:               
79:                   for (int 130i++) 
80:                   {
81:                   
82:                       datatable.DefaultHorizontalAlignment Element.ALIGN_LEFT;
83:                   
84:                       datatable.AddCell("myUserId");
85:                       datatable.AddCell("Somebody with a very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very long long name");
86:                       datatable.AddCell("No Name Company");
87:                       datatable.AddCell("D" i);
88:                   
89:                       datatable.DefaultHorizontalAlignment Element.ALIGN_CENTER;
90:                       datatable.AddCell("No");
91:                       datatable.AddCell("Yes");
92:                       datatable.AddCell("No");
93:                       datatable.AddCell("Yes");
94:                       datatable.AddCell("No");
95:                       datatable.AddCell("Yes");
96:                   
97:                   }
98:               
99:               
100:                   document.Add(datatable);
101:               }
102:               catch(Exception e
103:               {
104:                   Console.Error.WriteLine(e.StackTrace);
105:               }
106:           
107:               // we close the document
108:               document.Close();
109:  
110:           }
111:       }
112:   }