C# PDF table 在错误的位置添加行

C# PDF table add row in wrong position

[由于对答案的误解而编辑]

我正在用 C# 编写一个简单的程序,使用 iText7 创建 PDF 文件。 在此 PDF 中,我添加了一个 table,其第一个单元格从文件中的某个位置开始。

我不知道我是否设置了正确的位置,但每次我添加另一个带有 tab.StartNewRow() 的单元格时,生成的新 table 都会重新定位,将最后一个单元格作为位置参考,将之前的从那个点向上 添加单元格 ,而我想从那个点向下添加单元格

我应该使用哪种方法?那是我的代码: 以前我使用 tab1.SetFixedPosition(20, heigh, width);

设置第一个 table 单元格的位置

然后,为了添加其他单元格:

if (mylistbox.Items.Count > 0)
  {
     tab1.AddCell("FIRST CELL");
     tab1.StartNewRow();
     for (int i = 0; i < mylistbox.Items.Count; i++)
        {
          tab1.AddCell(mylistbox.Items[i].ToString());
          tab1.StartNewRow();
        }
        doc.Add(tab1);
  }

[编辑 #2] 为了更好地解释我的问题

我必须放置 5 个 tables,它们必须从某个点向下增长,在文档中以相等的距离、相同的高度和宽度放置。这张图片解释了结果应该如何:

在 WPF 应用程序中,我有一个包含 5 个项目的 ListBox,编号为 1 到 5。这应该与 WinForms 非常相似。

CreatePercentArray 的大小等于一行中的列数。

一篇关于表格的有趣文章:link

  private void CreateListBoxTable(Document pdfDoc)
        {
            // Create an array where each item has an equal width, and use the entire pdf width
            // The CreatePercentArray takes a size which is equal to the amount of columns in a row
            // By using percentages, they will automatically adapt
            // Use CreatePointArray for exacter measurements
            var table = new Table(UnitValue.CreatePercentArray(2)).UseAllAvailableWidth();

            if (!MyListBox.Items.IsEmpty)
            {
                foreach (var listBoxItem in MyListBox.Items)
                {
                    table.AddCell(((ListBoxItem) listBoxItem).Content.ToString());
                }
            }
            // Adds table to document
            pdfDoc.Add(table);
            // Closes document
            pdfDoc.Close();
        }