我试图“打印”我的数据网格/数据表的内容。我读了一些关于将 DATAGRID 转换为 TABLE 到 FLOWDOCUMENT 的内容,但我找不到如何做到这一点的来源。
我只需要一些关于如何将 datagrid/dataTable 转换为 Table 的示例代码。
那么我将应用此解决方案:打印 WPF FlowDocument
任何想法?
感谢和抱歉我的菜鸟问题。
我试图“打印”我的数据网格/数据表的内容。我读了一些关于将 DATAGRID 转换为 TABLE 到 FLOWDOCUMENT 的内容,但我找不到如何做到这一点的来源。
我只需要一些关于如何将 datagrid/dataTable 转换为 Table 的示例代码。
那么我将应用此解决方案:打印 WPF FlowDocument
任何想法?
感谢和抱歉我的菜鸟问题。
就我的研究而言,当我打印一些东西时,我发现将 UI 元素转换为页面是错误的尝试。打印与创建 UI 有很大不同,并且纸上没有滚动或可拖动的列 :),因此您的打印数据将与表单上显示的表单数据不同。
就目前DataTable
而言,这只是数据的一种表示,因此您可以轻松地生成一个可以打印的表格,它已经有行和列,所以应该直接开始:(注意代码未测试)
System.Data.DataTable dataTable = GetDataTable();
var table = new Table();
var rowGroup = new TableRowGroup();
table.RowGroups.Add(rowGroup);
var header = new TableRow();
rowGroup.Rows.Add(header);
foreach (DataColumn column in dataTable.Columns)
{
var tableColumn = new TableColumn();
//configure width and such
table.Columns.Add(tableColumn);
var cell = new TableCell(new Paragraph(new Run("column Header")));
header.Cells.Add(cell);
}
foreach (DataRow row in dataTable.Rows)
{
var tableRow = new TableRow();
rowGroup.Rows.Add(tableRow);
foreach (DataColumn column in dataTable.Columns)
{
var value = row[column].ToString();//mayby some formatting is in order
var cell = new TableCell(new Paragraph(new Run(value)));
tableRow.Cells.Add(cell);
}
}
//and print your table
如果你问我,我发现这个 API 有点冗长,但对于正确理解的复杂文档来说,它非常强大。