1
我從數據庫中獲取一些值並將其設置到帶標題的itextsharp PdfPCell中。這是我的一段代碼。有什麼簡單的方法來創建itextsharp中的表元素
var a = _db.persons.SingleOrDefault(m => m.id == Person.Id);
var table = new PdfPTable(2) {WidthPercentage = 100};
table.DefaultCell.Border = Rectangle.NO_BORDER;
var columns = new[] { 50f, 50f };
table.SetWidths(columns);
var bt1a = new PdfPCell(new Phrase("Name, surname:", fontGeneralText));
var bt2a = new PdfPCell(new Phrase("Personal Id:", fontGeneralText));
var bt3a = new PdfPCell(new Phrase("Phone number:", fontGeneralText));
var bt4a = new PdfPCell(new Phrase("Department:", fontGeneralText));
var bt5a = new PdfPCell(new Phrase("University:", fontGeneralText));
var bt6a = new PdfPCell(new Phrase("Faculty:", fontGeneralText));
var bt1b = new PdfPCell(new Phrase(a.name_surname, fontBoldText));
var bt2b = new PdfPCell(new Phrase(a.personal_id, fontGeneralText));
var bt3b = new PdfPCell(new Phrase(a.phne_number, fontGeneralText));
var bt4b = new PdfPCell(new Phrase(a.department, fontGeneralText));
var bt5b = new PdfPCell(new Phrase(a.university, fontGeneralText));
var bt6b = new PdfPCell(new Phrase(a.faculty, fontGeneralText));
table.AddCell(bt1a);
table.AddCell(bt1b);
table.AddCell(bt2a);
table.AddCell(bt2b);
table.AddCell(bt3a);
table.AddCell(bt3b);
table.AddCell(bt4a);
table.AddCell(bt4b);
table.AddCell(bt5a);
table.AddCell(bt5b);
table.AddCell(bt6a);
table.AddCell(bt6b);
doc.Add(table);
但它是ver業餘編碼風格。因爲我寫了相同的結構並只更改參數。 有什麼辦法,以自動化的方法就像使用的foreach等
我認爲它可以通過方式來完成,但是我在這裏之後不知道:
List<string> titles = new List<string>() {"Name, surname:", "Personal Id:", "Phone number:", "Department:", "University:", "Faculty:"};
List<Phrase> datas = new List<Phrase>() { new Phrase(a.name_surname, fontGeneralText), new Phrase(a.personal_id, fontGeneralText), new Phrase(a.phone_number, fontGeneralText), new Phrase(a.department, fontGeneralText), new Phrase(a.university, fontGeneralText), new Phrase(a.faculty, fontGeneralText)};
foreach (var titles in title)
{
MessageBox.Show(title);
}