至於當我打印我的東西去研究我發現,轉換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 2013-02-20 09:48:02