【问题标题】:How to export DataGridView as PDF using iText7, (Note: Not Using iTextSharp) in C#?如何在 C# 中使用 iText7 将 DataGridView 导出为 PDF(注意:不使用 iTextSharp)?
【发布时间】:2020-05-25 13:17:36
【问题描述】:
我找到了很多关于如何使用 iText Sharp 将 DataGridView 和 DataTable 导出为 PDF 的示例,这是 iText7 的旧版本,但我想知道我们如何使用 iText7 来做到这一点,包括标题,
在此先感谢
【问题讨论】:
标签:
.net
pdf
datagridview
datatable
itext7
【解决方案1】:
美好的一天,
你好 :),
您可以使用 for & foreach 并将数据从选定的 DGV 获取到表中......
请看下面的代码:
private Table PDFTableFromDGV(DataGridView dgv, float [] cloumnwidth)
{
// Getting Rows & Columns Counts
int dgvrowcount = dgv.Rows.Count;
int dgvcolumncount = dgv.Columns.Count;
// Set The Table like new float [] {15f, 15f, 15f, 15f, 15f }
Table table = new Table(cloumnwidth);
table.SetWidth(iText.Layout.Properties.UnitValue.CreatePercentValue(100));
// Print The DGV Header To Table Header
for (int i = 0; i < dgvcolumncount; i++)
{
Cell headerCells = new Cell()
.SetBackgroundColor(iText.Kernel.Colors.ColorConstants.LIGHT_GRAY)
.SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER);
//headerCells.SetNextRenderer(new RoundedCornersCellRenderer(headerCells));
var gteCell = headerCells.Add(new Paragraph(dgv.Columns[i].HeaderText));
table.AddHeaderCell(gteCell);
}
// Print The DGV Cells To Table Cells
for (int i = 0; i < dgvrowcount; i++)
{
for (int c = 0; c < dgvcolumncount; c++)
{
Cell cells = new Cell()
.SetBackgroundColor(iText.Kernel.Colors.ColorConstants.WHITE)
.SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER);
var gteCell = cells.Add(new Paragraph(dgv.Rows[i].Cells[dgv.Columns[c].HeaderText].Value.ToString()));
table.AddCell(gteCell);
}
}
return table;
}