2015-07-07 2 views
0

Как создать таблицу, указанную ниже, используя iext sharp. Ниже мой код, но я ручей. Помогите мне составить такую ​​таблицу типов. Мой кодКак создать вложенный столбец с помощью itextsharp?

 var subTable2 = new PdfPTable(new float[] { 100, 100, 100, 100, 100, 100,100,100 }); 
     subTable2.TotalWidth = 510f; 
     subTable2.LockedWidth = true; 
     subTable2.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER; 
     subTable2.AddCell(new Phrase("Examination", time51)); 
     subTable2.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER; 
     subTable2.AddCell(new Phrase("Board", time51)); 
     subTable2.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER; 
     subTable2.AddCell(new Phrase("Month and Year of Passing", time51)); 
     subTable2.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER; 
     subTable2.AddCell(new PdfPCell(new Phrase("Mark", time51))); 
     PdfPTable nested = new PdfPTable(1); 
     nested.AddCell(""); 
     nested.AddCell("Obtained"); 
     nested.AddCell("Out of"); 
     PdfPCell nesthousing = new PdfPCell(nested); 
     nesthousing.Padding = 0f; 
     subTable2.AddCell(nesthousing); 
     subTable2.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER; 
     subTable2.AddCell(new Phrase("Percentage", time51)); 
     subTable2.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER; 
     subTable2.AddCell(new Phrase("Calss/Grade", time51)); 
     doc.Add(subTable2); 

enter image description here

+0

Это нормально, если я приведу вам пример Java, показывающий, как это сделать, что вы можете адаптировать к C#? –

+0

@Bruno Lowagie, нормально, я попробую –

+0

@Bruno Lowagie, Можете ли вы сделать это сейчас? –

ответ

0

Пожалуйста, обратите внимание на SimpleTable12. Он создает таблицу, которая выглядит следующим образом: simple_table12.pdf

enter image description here

еще можно был подстроить высоту ячеек с помощью отступов или пути введения спускового/ASCENDER информации, но это деталь. Важно: как организовать ячейки?

Я написал этот небольшой удобный метод:

public PdfPCell createCell(String content, int colspan, int rowspan, int border) { 
    PdfPCell cell = new PdfPCell(new Phrase(content, font)); 
    cell.setColspan(colspan); 
    cell.setRowspan(rowspan); 
    cell.setBorder(border); 
    cell.setHorizontalAlignment(Element.ALIGN_CENTER); 
    return cell; 
} 

Вы пройти некоторое содержание, а Colspan, а информацию RowSpan и границы, и это создает интересующие вас PdfPCell вам нужно. Это позволяет создавать код, который легче читать:

public void createPdf(String dest) throws IOException, DocumentException { 
    font = new Font(FontFamily.HELVETICA, 10); 
    Document document = new Document(); 
    PdfWriter.getInstance(document, new FileOutputStream(dest)); 
    document.open(); 
    PdfPTable table = new PdfPTable(8); 
    table.setWidthPercentage(100); 
    table.addCell(createCell("Examination", 1, 2, PdfPCell.BOX)); 
    table.addCell(createCell("Board", 1, 2, PdfPCell.BOX)); 
    table.addCell(createCell("Month and Year of Passing", 1, 2, PdfPCell.BOX)); 
    table.addCell(createCell("", 1, 1, PdfPCell.TOP)); 
    table.addCell(createCell("Marks", 2, 1, PdfPCell.TOP)); 
    table.addCell(createCell("Percentage", 1, 2, PdfPCell.BOX)); 
    table.addCell(createCell("Class/Grade", 1, 2, PdfPCell.BOX)); 
    table.addCell(createCell("", 1, 1, PdfPCell.BOX)); 
    table.addCell(createCell("Obtained", 1, 1, PdfPCell.BOX)); 
    table.addCell(createCell("Out of", 1, 1, PdfPCell.BOX)); 
    table.addCell(createCell("12th/I.B. Diploma", 1, 1, PdfPCell.BOX)); 
    table.addCell(createCell("", 1, 1, PdfPCell.BOX)); 
    table.addCell(createCell("", 1, 1, PdfPCell.BOX)); 
    table.addCell(createCell("Aggregate (all subjects)", 1, 1, PdfPCell.BOX)); 
    table.addCell(createCell("", 1, 1, PdfPCell.BOX)); 
    table.addCell(createCell("", 1, 1, PdfPCell.BOX)); 
    table.addCell(createCell("", 1, 1, PdfPCell.BOX)); 
    table.addCell(createCell("", 1, 1, PdfPCell.BOX)); 
    document.add(table); 
    document.close(); 
} 

Как вы можете видеть, это вопрос расчета правильных colspan и rowspan значения, и применяя правильные границы.

+0

, Позвольте мне попробовать .. Спасибо –

Смежные вопросы