C# 向动态PDF添加数据表
我希望能够在C#中读取数据表,并将其添加到PDF文件中。该示例显示了如何一次执行一行,但似乎必须定义表中的每一行。我还没有弄清楚如何将完整的数据表动态添加到网格中。我有循环设置,但由于每次都要添加新行,因此无法运行。下面是我尝试的例子C# 向动态PDF添加数据表,c#,dynamicpdf,C#,Dynamicpdf,我希望能够在C#中读取数据表,并将其添加到PDF文件中。该示例显示了如何一次执行一行,但似乎必须定义表中的每一行。我还没有弄清楚如何将完整的数据表动态添加到网格中。我有循环设置,但由于每次都要添加新行,因此无法运行。下面是我尝试的例子 DataTable myDT = new DataTable(); myDT = dbAccessObject.GetDTValues();//just filling DataTable // Create a
DataTable myDT = new DataTable();
myDT = dbAccessObject.GetDTValues();//just filling DataTable
// Create a PDF Document
Document document = new Document();
// Create a Page and add it to the document
Page page = new Page();
document.Pages.Add(page);
// add Table to PDF
// Create a table
Table table = new Table(20, 100, 600, 600);
table.Columns.Add(100);
table.Columns.Add(100);
Row headers = table.Rows.Add(20, Font.Helvetica, 12);
string colStr = "name";
string colStr1 = "desc";
headers.Cells.Add(colStr);
headers.Cells.Add(colStr1);
Row row = table.Rows.Add(20, Font.Helvetica, 12);
Row row2 = table.Rows.Add(20, Font.Helvetica, 12);
int i, j;
i = j = 0;
while (i < myDT.Rows.Count)
{
while(j<myDT.Columns.Count)
{
row.Cells.Add(myDT.Rows[i][j].ToString());//need a default row here or way to add directly to the table
j++;}
j = 0;
i++;}
// Add the table to the page
page.Elements.Add(table);
// Add a label to the page
page.Elements.Add(new Label("New PDF Document", 0, 0, 512, 40, Font.Helvetica, 30, TextAlign.Center));
// Save the PDF document
document.DrawToWeb("MyDocument.pdf", true);
DataTable myDT=newdatatable();
myDT=dbAccessObject.GetDTValues()//只是填充数据表
//创建PDF文档
文档=新文档();
//创建页面并将其添加到文档中
页面=新页面();
文件。页码。添加(第页);
//将表格添加到PDF
//创建一个表
Table Table=新的Table(20,100,600,600);
表.列.增加(100);
表.列.增加(100);
行标题=table.Rows.Add(20,Font.Helvetica,12);
字符串colStr=“name”;
字符串colStr1=“desc”;
headers.Cells.Add(colStr);
headers.Cells.Add(colStr1);
Row Row=table.Rows.Add(20,Font.Helvetica,12);
row2行=table.Rows.Add(20,Font.Helvetica,12);
int i,j;
i=j=0;
而(i 虽然(j您必须专门构建必要的元素,并将其添加到您在DynamicPDF中使用的当前页面实例中。这同样适用于表。您创建了一个表实例,并且对于要添加到表中的每一行,您必须创建一个行实例并相应地填充它。否则,您的循环代码只是在更新一次又一次地吵架
例如:
while (i < myDT.Rows.Count)
{
while (j < myDT.Columns.Count)
{
Row newRow = table.Rows.Add(20, Font.Helvetica, 12);
newRow.Cells.Add(myDT.Rows[i][j].ToString());//need a default row here or way to add directly to the table
j++;
}
j = 0;
i++;
}
while(i
您必须为要添加到表中的每一行创建一个行实例。上面的示例是将标签元素直接添加到页面中,但概念相同。我将更新我的答案。