1

我试图“打印”我的数据网格/数据表的内容。我读了一些关于将 DATAGRID 转换为 TABLE 到 FLOWDOCUMENT 的内容,但我找不到如何做到这一点的来源。

我只需要一些关于如何将 datagrid/dataTable 转换为 Table 的示例代码。

那么我将应用此解决方案:打印 WPF FlowDocument

任何想法?

感谢和抱歉我的菜鸟问题。

4

1 回答 1

2

就我的研究而言,当我打印一些东西时,我发现将 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 有点冗长,但对于正确理解的复杂文档来说,它非常强大。

于 2013-02-20T09:21:52.080 回答