在 iText 7 for .NET 中创建和显示数据 Table
Creating and displaying data in iText 7 for .NET Table
应该很简单:
public void WritePartsPdf(Document doc)
{
Table table = new Table(2, true);
foreach (var part in PartsList)
{
Paragraph name = new Paragraph(part.PartName);
Paragraph length = new Paragraph(part.Length.ToString());
var cell = new Cell().Add(name);
var cell2 = new Cell().Add(length);
cell.Add(cell2);
table.AddCell(cell);
}
doc.Add(table);
}
但是我的段落在所有单元格中都是重复的,我需要在这里明显的是一列用于名称,另一列用于长度。这是我到目前为止得到的:
请帮忙!
所以,"problem" 是设置 table 比我最初想象的还要简单。我们不需要嵌套单元格,因为我已经设置了列计数,只需在另一个单元格之后添加一个单元格即可:
public void WritePartsPdf(Document doc)
{
Table table = new Table(2, true);
foreach (var part in PartsList)
{
var name = new Paragraph(part.PartName);
var length = new Paragraph(part.Length.ToString());
var column1 = new Cell().Add(name);
var column2 = new Cell().Add(length);
table.AddCell(column1);
table.AddCell(column2);
}
doc.Add(table);
}
必须仔细阅读此处的代码才能理解:https://developers.itextpdf.com/content/itext-7-jump-start-tutorial-net/chapter-3-using-renderers-and-event-handlers
****更新****
它变得更加容易。我弄乱了它,发现 Paragraph
扩展了 BlockElement<T>
,所以我们根本不需要单元格对象来将单元格添加到 table:
private void WriteListToPdf(Document doc)
{
Table table = new Table(2, true);
foreach (var item in myList)
{
table.AddCell(new Paragraph(item.Foo));
table.AddCell(new Paragraph(item.Bar));
}
doc.Add(table);
}
幸运的是 tableAddCell
对 BlockElement<T>
有过载 ;)
如果您需要在单个单元格中包含多行,您仍然需要单元格对象。只需将一堆段落添加到单元格,然后 然后 将单元格添加到 table.
应该很简单:
public void WritePartsPdf(Document doc)
{
Table table = new Table(2, true);
foreach (var part in PartsList)
{
Paragraph name = new Paragraph(part.PartName);
Paragraph length = new Paragraph(part.Length.ToString());
var cell = new Cell().Add(name);
var cell2 = new Cell().Add(length);
cell.Add(cell2);
table.AddCell(cell);
}
doc.Add(table);
}
但是我的段落在所有单元格中都是重复的,我需要在这里明显的是一列用于名称,另一列用于长度。这是我到目前为止得到的:
请帮忙!
所以,"problem" 是设置 table 比我最初想象的还要简单。我们不需要嵌套单元格,因为我已经设置了列计数,只需在另一个单元格之后添加一个单元格即可:
public void WritePartsPdf(Document doc)
{
Table table = new Table(2, true);
foreach (var part in PartsList)
{
var name = new Paragraph(part.PartName);
var length = new Paragraph(part.Length.ToString());
var column1 = new Cell().Add(name);
var column2 = new Cell().Add(length);
table.AddCell(column1);
table.AddCell(column2);
}
doc.Add(table);
}
必须仔细阅读此处的代码才能理解:https://developers.itextpdf.com/content/itext-7-jump-start-tutorial-net/chapter-3-using-renderers-and-event-handlers
****更新****
它变得更加容易。我弄乱了它,发现 Paragraph
扩展了 BlockElement<T>
,所以我们根本不需要单元格对象来将单元格添加到 table:
private void WriteListToPdf(Document doc)
{
Table table = new Table(2, true);
foreach (var item in myList)
{
table.AddCell(new Paragraph(item.Foo));
table.AddCell(new Paragraph(item.Bar));
}
doc.Add(table);
}
幸运的是 tableAddCell
对 BlockElement<T>
有过载 ;)
如果您需要在单个单元格中包含多行,您仍然需要单元格对象。只需将一堆段落添加到单元格,然后 然后 将单元格添加到 table.