如何让PdfpTable宽度工作?

时间:2011-10-28 09:02:43

标签: c#-4.0 itextsharp

所以我一直试图找出如何让表格宽度工作,但对于特定情况没有成功。

我有一个包含2列的表格。在第二列中,我添加了一个包含一列表的单元格。在这个单元格中,我添加一个包含一列的表,然后添加一个带有文本的单元格,然后添加另一个带有两列的PdfPTable。

现在最后一个PdfPTable I接缝无法操纵。 SetTotalWidth和WidthPercentage什么都不做,根本没有任何变化。我只是想让这张桌子不那么宽。

我做错了什么或者itextcharp有错误吗?

1 个答案:

答案 0 :(得分:0)

4个嵌套表?这是一个真的,真的需要一些示例代码,所以我们都可以在同一页面上。以下内容有望将您正在做的任何内容抽象为基本要素。看起来不错吗?这不是一个答案,而是一个起点,所以我们有一些工作要做。

我在最外面和最里面的桌子上设置宽度,它对我来说很好。由于内部表格,外部表格正在被吹灭,但这是可以预期的。

        string sampleFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Sample.pdf");
        using (FileStream fs = new FileStream(sampleFile, FileMode.Create, FileAccess.Write, FileShare.None))
        {
            using (Document doc = new Document(PageSize.LETTER))
            {
                using (PdfWriter w = PdfWriter.GetInstance(doc, fs))
                {
                    doc.Open();

                    PdfPTable t1 = new PdfPTable(2);
                    PdfPTable t2 = new PdfPTable(1);
                    PdfPTable t3 = new PdfPTable(1);
                    PdfPTable t4 = new PdfPTable(2);

                    t1.SetTotalWidth(new float[] { 10f, 40f });
                    t4.SetTotalWidth(new float[] { 40f, 10f });

                    t4.AddCell("t4a");
                    t4.AddCell("t4b");
                    t3.AddCell(t4);
                    t2.AddCell(t3);
                    t1.AddCell("t1a");
                    t1.AddCell(t2);

                    doc.Add(t1);

                    doc.Close();
                }
            }
        }