【发布时间】:2021-01-24 20:18:13
【问题描述】:
[由于对答案的误解而编辑]
我正在用 C# 编写一个简单的程序,使用 iText7 创建 PDF 文件。 在此 PDF 中,我添加了一个表格,其第一个单元格从文件中的某个位置开始。
我不知道我是否正确设置了位置,但是每次我使用tab.StartNewRow() 添加另一个单元格时,生成的新表都会重新定位,将最后一个单元格作为位置参考,将之前添加的单元格从该点开始向上,而我想从该点向下添加单元格。
我应该使用哪种方法?那是我的代码:
以前我使用tab1.SetFixedPosition(20, heigh, width);设置第一个表格单元格的位置
然后,为了添加其他单元格:
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);
}
[EDIT #2] 为了更好地解释我的问题
我必须放置 5 个表格,这些表格必须从某个点向下增长,在文档中以相同的距离、相同的高度和宽度放置。这张图片解释了它应该如何产生:
【问题讨论】:
-
这确实是
SetFixedPosition所做的,它被记录为指定的坐标对应于元素的左下角并向上增长。 -
so....你知道一种方法,它以表格顶部为参考并使其向下增长吗?
-
false,它不起作用。它将下一个表放在上一个表之下,因为它计算相对于上一个项目的位置
-
您是否考虑过在有问题的页面上创建一个
Canvas,按照您的需要设置左边距、上边距和右边距,并且底部足够远以允许任何预期的表格大小,然后添加没有SetFixedPosition的表到那个Canvas? -
您的意思是为每个表格创建不同的画布,然后将其添加到具有不同位置的文档中?那么,例如,如果我有 5 个表,我必须使用 5 个画布?
标签: c# winforms itext windows-forms-designer itext7