【发布时间】:2020-01-21 23:37:07
【问题描述】:
protected void pdf(DataTable dt, string str)
{
Document doc = new Document(iTextSharp.text.PageSize.A4, 10, 22, 34, 34);
PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(Request.PhysicalApplicationPath+"sdad.pdf", FileMode.Create));
doc.Open();
doc.Add(new Paragraph("Table"));
GridView dataGridview = new GridView();
dataGridview.ShowHeaderWhenEmpty = true;
dataGridview.AllowPaging = false;
dataGridview.DataSource = dt;
dataGridview.DataBind();
PdfPTable table = new PdfPTable(dataGridview.Columns.Count);
for (int j = 0; j < dataGridview.Columns.Count; j++)
{
table.AddCell(new Phrase(dataGridview.Columns[j].HeaderText));
}
table.HeaderRows = 1;
for (int j = 0; j < dataGridview.Rows.Count;j++)
{
for (int k = 0; k < dataGridview.Columns.Count; k++)
{
if (dataGridview.Rows[j].Cells[k].Text != null)
{
table.AddCell(new Phrase(dataGridview.Rows[j].Cells[k].Text.ToString()));
}
}
}
doc.Add(table);
doc.Close();
}
这是使用 Isharp 文本创建 PDF 的代码。但我收到错误 PdfPTable 构造函数中的列数必须大于零。请任何人都可以帮助解决此错误。提前致谢。
【问题讨论】:
-
dataGridView.Columns.Count的值是多少
-
实际上它显示为零。但我可以看到包含三列的数据网格视图。
-
你为什么不直接使用 DataTable 而不是制作一个新的网格视图控件。你怎么能看到它?据我所知,您不会将其添加到任何表单中。
-
好的。谢谢。我会去吃饭。我在一个功能中显示网格视图,在创意 pdf 中显示另一个功能。
标签: c# gridview itextsharp