인쇄물을 인쇄 할 때까지 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는 약간 장황하지만 적절한 이해가있는 복잡한 문서의 경우 매우 강력합니다.
답장을 보내 주셔서 감사합니다. 지금 시도 중입니다. – nfinium