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 に答える