2013-02-20 1 views
0

내 DataGrid/DataTable의 내용을 '인쇄'하려고합니다. DATAGRID를 TABLE TO FLOWDOCUMENT로 변환하는 것에 대해 읽었지만 소스를 찾는 방법을 찾을 수 없습니다.WPF : DataGrid/DataTable을 테이블로 변환하여 인쇄하십시오.

DataGrid/dataTable을 Table로 변환하는 방법에 대한 샘플 코드가 필요합니다. Printing a WPF FlowDocument

어떤 생각 :

은 그냥이 솔루션을 적용 할 것인가?

감사합니다. 내 멍청한 질문에 대해 죄송합니다.

답변

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는 약간 장황하지만 적절한 이해가있는 복잡한 문서의 경우 매우 강력합니다.

+0

답장을 보내 주셔서 감사합니다. 지금 시도 중입니다. – nfinium

관련 문제