Created
March 2, 2020 00:16
-
-
Save omeraydemir/704dbfcb02ed289d0b9704b64571f872 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
static void CreateSection(string filePath, DataTable dataTable) | |
{ | |
// Pdf belgemizin yönünü belirliyoruz (dikey, yatay) | |
document.DefaultPageSetup.Orientation = Orientation.Portrait; | |
Section section = document.AddSection(); | |
Image image = section.AddImage(Path.Combine(Environment.CurrentDirectory, "ekmob_logo.jpg")); | |
image.Top = ShapePosition.Top; | |
image.Left = ShapePosition.Right; | |
image.Width = 150; | |
image.Height = 42; | |
//Sayfamıza bir "Image" yerleştiriyoruz. | |
Paragraph paragraph = section.AddParagraph(); | |
paragraph.AddLineBreak(); | |
paragraph.AddLineBreak(); | |
//İki satırlık boşluk bırakıyoruz | |
table = section.AddTable(); | |
table.Style = "Table"; | |
//Section'a bir tablo olşturuyorum. | |
Column columnHeaderSub; | |
columnHeaderSub = table.AddColumn(Unit.FromCentimeter(5.43)); | |
columnHeaderSub.Format.Alignment = ParagraphAlignment.Left; | |
columnHeaderSub = table.AddColumn(Unit.FromCentimeter(5.43)); | |
columnHeaderSub.Format.Alignment = ParagraphAlignment.Left; | |
columnHeaderSub = table.AddColumn(Unit.FromCentimeter(5.43)); | |
columnHeaderSub.Format.Alignment = ParagraphAlignment.Left; | |
//Tabloma Alıcı, Satıcı ve Satış bilgileri olacak şekilde 3 kolon oluşturuyorum. | |
//Sayfa genişliğini 16,3 olarak belirledim ve 3 kolon oluşturduğum için 16,3/3 = 5.43 olarak her kolona genişlik verdim. | |
Row rowHeaderSub = table.AddRow(); | |
//Tablomdaki 3 kolona veri eklemek için satır oluşturuyorum. | |
rowHeaderSub.Cells[0].AddParagraph("Alıcı"); | |
rowHeaderSub.Cells[0].Format.Font.Color = Color.FromRgb(190, 37, 76); | |
rowHeaderSub.Cells[0].Format.Font.Bold = true; | |
rowHeaderSub.Cells[0].Format.Alignment = ParagraphAlignment.Left; | |
rowHeaderSub.Cells[0].VerticalAlignment = VerticalAlignment.Center; | |
//Satırımın 0. index'ini oluşturuyorum. | |
rowHeaderSub.BottomPadding = 7; | |
rowHeaderSub.Cells[1].AddParagraph("Satıcı"); | |
rowHeaderSub.Cells[1].Format.Font.Color = Color.FromRgb(190, 37, 76); | |
rowHeaderSub.Cells[1].Format.Font.Bold = true; | |
rowHeaderSub.Cells[1].Format.Alignment = ParagraphAlignment.Left; | |
rowHeaderSub.Cells[1].VerticalAlignment = VerticalAlignment.Center; | |
//Satırımın 1. index'ini oluşturuyorum. | |
rowHeaderSub.BottomPadding = 7; | |
rowHeaderSub.Cells[2].AddParagraph("Satış Bilgileri"); | |
rowHeaderSub.Cells[2].Format.Font.Color = Color.FromRgb(190, 37, 76); | |
rowHeaderSub.Cells[2].Format.Font.Bold = true; | |
rowHeaderSub.Cells[2].Format.Alignment = ParagraphAlignment.Left; | |
rowHeaderSub.Cells[2].VerticalAlignment = VerticalAlignment.Center; | |
//Satırımın 2. index'ini oluşturuyorum. | |
rowHeaderSub = table.AddRow(); | |
rowHeaderSub.VerticalAlignment = VerticalAlignment.Center; | |
rowHeaderSub.Format.Alignment = ParagraphAlignment.Left; | |
//Aynı tablomdali kolonlar için bir satır daha oluşturuyorum ve yatay da sola, dikey de ortaya hizalıyorum. | |
rowHeaderSub.Cells[0].AddParagraph(Faker.NameFaker.FirstName() + " " + Faker.NameFaker.LastName()); | |
rowHeaderSub.Cells[1].AddParagraph(Faker.CompanyFaker.Name()); | |
rowHeaderSub.Cells[2].AddParagraph("Tarih: " + Faker.DateTimeFaker.DateTime()); | |
//Satırımın 0, 1 ve 2. indexlerine gerekli bilgileri veriyorum. | |
rowHeaderSub = table.AddRow(); | |
rowHeaderSub.VerticalAlignment = VerticalAlignment.Center; | |
rowHeaderSub.Format.Alignment = ParagraphAlignment.Left; | |
//Aynı tablomdali kolonlar için bir satır daha oluşturuyorum ve yatay da sola, dikey de ortaya hizalıyorum. | |
rowHeaderSub.Cells[0].AddParagraph(Faker.LocationFaker.Country() + ", " + Faker.LocationFaker.City() + ", " + Faker.LocationFaker.StreetName()); | |
rowHeaderSub.Cells[1].AddParagraph(Faker.LocationFaker.Country() + ", " + Faker.LocationFaker.City() + ", " + Faker.LocationFaker.StreetName()); | |
rowHeaderSub.Cells[2].AddParagraph("Gerçekleşme Tarihi: " + DateTime.Now.ToShortDateString()); | |
//Satırımın 0, 1 ve 2. indexlerine gerekli bilgileri veriyorum. | |
rowHeaderSub = table.AddRow(); | |
rowHeaderSub.VerticalAlignment = VerticalAlignment.Center; | |
rowHeaderSub.Format.Alignment = ParagraphAlignment.Left; | |
//Aynı tablomdali kolonlar için bir satır daha oluşturuyorum ve yatay da sola, dikey de ortaya hizalıyorum. | |
rowHeaderSub.Cells[0].AddParagraph(Faker.PhoneFaker.Phone()); | |
rowHeaderSub.Cells[1].AddParagraph(Faker.PhoneFaker.Phone()); | |
rowHeaderSub.Cells[2].AddParagraph("Tutar: " + Faker.NumberFaker.Number(10000) + " TL"); | |
//Satırımın 0, 1 ve 2. indexlerine gerekli bilgileri veriyorum. | |
paragraph = section.AddParagraph(); | |
paragraph.AddLineBreak(); | |
paragraph.AddLineBreak(); | |
//İki satır booşluk bırakıyorum. | |
table = section.AddTable(); | |
table.Style = "Table"; | |
//Sipariş detaylarını yazdırabilmek için bir tablo daha oluşturuyorum. | |
Column column; | |
foreach (DataColumn col in dataTable.Columns) | |
{ | |
column = table.AddColumn(Unit.FromCentimeter(16.3 / dataTable.Columns.Count)); //16,3 sayfa genişliğim / kolon sayısı | |
column.Format.Alignment = ParagraphAlignment.Left; | |
//GetInvoiceContent fonksiyonundan gelen kolon sayısı kadar tabloma kolon ekliyorum. | |
} | |
Row row = table.AddRow(); | |
row.TopPadding = 7; | |
row.BottomPadding = 7; | |
//Yeni oluşturduğum tabloya ilk satırı ekliyorum. Bu satırı tablonun başlık kısmı olarak kullanacağım. | |
for (int i = 0; i < dataTable.Columns.Count; i++) | |
{ | |
row.Cells[i].AddParagraph(dataTable.Columns[i].ColumnName); | |
row.Cells[i].Format.Font.Color = Colors.White; | |
row.Cells[i].Format.Font.Bold = true; | |
row.Cells[i].Format.Alignment = ParagraphAlignment.Left; | |
row.Cells[i].VerticalAlignment = VerticalAlignment.Center; | |
row.Cells[i].Shading.Color = Color.FromRgb(190, 37, 76); | |
//tablonun başlıklarını datatable da ki kolonların isimlerinden alıyorum | |
} | |
paragraph = section.Footers.Primary.AddParagraph(); | |
paragraph.AddLineBreak(); | |
paragraph.Format.SpaceBefore = "-1cm"; | |
//Bölümüme bir paragraf ekliyorum ve bir satır boşluk bırakıyorum. Daha sonra 1 cm daha aşağıdan başlaması için üstten -1 cm veriyorum. | |
paragraph = section.Footers.Primary.AddParagraph(); | |
paragraph.AddText("Örnek pdf belgesi - www.ekmob.com"); | |
paragraph.Format.Font.Size = 10; | |
paragraph.Format.Font.Color = Colors.LightGray; | |
paragraph.Format.Alignment = ParagraphAlignment.Left; | |
//Bir paragraf daha oluşturuyorum ve istediğim bir metni yazıyorum. | |
paragraph = section.Footers.Primary.AddParagraph(); | |
paragraph.AddPageField(); | |
paragraph.Format.Font.Size = 10; | |
paragraph.Format.Font.Color = Colors.LightGray; | |
paragraph.Format.Alignment = ParagraphAlignment.Right; | |
//Bir paragraf daha ekliyorum ve sayfa numarasını yazdırıyorum. | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment