如何使用iTextSharp的创建嵌套列? [英] How to create nested column using itextsharp?

查看:841
本文介绍了如何使用iTextSharp的创建嵌套列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎么可以创建下面提及的表,用锋利的IEXT。下面是我的code,但我stuceked。帮助我做出这样的类型表。
我的code

How can I create a table mentioned below,using iext sharp. Below is my code but I am stuceked. Help me to make such a type table. My code

        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);

推荐答案

请看看 SimpleTable12 。它创建一个表,看起来像这样: simple_table12.pdf

Please take a look at SimpleTable12. It creates a table that looks like this: simple_table12.pdf

您可以通过使用填充或引入伸/伸信息仍然微调单元格的高度,但这些都是细节。重要的是:?如何组织细胞

You could still fine-tune the height of the cells by using a padding or by introducing descender/ascender info, but those are details. What matters is: how to organize the cells?

我写这个小简便方法:

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;
}

您传递一些内容,一列跨度,一个行跨度和边界信息并创建你 PdfPCell 你的需要。这使我们能够创建code,它是更容易阅读:

You pass some content, a colspan, a rowspan and border info and it creates you the PdfPCell you need. This allows us to create code that is easier to read:

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();
}

正如你可以看到,它的计算正确的合并单元格行跨度值,运用正确的事边框。

As you can see, it's a matter of calculating the correct colspan and rowspan values, and applying the correct borders.

这篇关于如何使用iTextSharp的创建嵌套列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆