我試圖打印一個WPF FlowDocument。佈局需要在每頁4個文件的形式,佈局如下:WPF流文檔佈局
Doc1 | Doc2
-------------
Doc3 | Doc4
(對不起,我不能拿出說明佈局的更好的方法)。
頁需要填補,因此,如果文檔1 & 2是空或只是一個或兩個字符,它仍然需要打印圖像的大小相同文檔3 & 4.
我正在使用的代碼如下如下(抱歉,這是很長,我試圖剝奪在可行情況下):
PrintDialog printDialog = new PrintDialog();
if ((bool)printDialog.ShowDialog().GetValueOrDefault())
{
FlowDocument flowDocument = new FlowDocument();
flowDocument.PageHeight = printDialog.PrintableAreaHeight;
flowDocument.PageWidth = printDialog.PrintableAreaWidth;
flowDocument.PagePadding = new Thickness(25);
flowDocument.ColumnGap = 0;
flowDocument.ColumnWidth = (flowDocument.PageWidth -
flowDocument.ColumnGap -
flowDocument.PagePadding.Left -
flowDocument.PagePadding.Right);
Table myTable = new Table();
myTable.BorderThickness = new Thickness(3);
AddCols(myTable); // Add 2 cols
TableRowGroup rg = new TableRowGroup();
TableRow row = new TableRow();
AddRows(myTable); // Adds 2 rows
TableCell cell = new TableCell(new Paragraph(new Run("Doc1")));
cell.BorderThickness = new Thickness(1);
cell.BorderBrush = Brushes.Black;
// Repeat 4 times
row.Cells.Add(cell);
myTable.RowGroups.Add(rg);
doc.Blocks.Add(myTable);
....
,我有是,雖然這樣做印刷,它並不試圖如上所述將其調整到頁面的問題。我正在嘗試做什麼,如果有的話,怎麼樣?
編輯:
從尋找here我相信我所真正需要的是計算該段的高度,這樣我就可以設置Padding屬性的一種方式。不幸的是,這個鏈接中提出的解決方案不起作用!
我最初自己也有過類似的想法,但我似乎無法獲得它打印網格。 – 2012-07-20 20:21:17
您是否嘗試過使用這種方法進行打印?它應該工作。 – 2012-07-21 08:58:50
是的 - 如上所述,我不能讓網格控件打印任何東西。上面的代碼只是簡單的導致了一個空白頁 – 2012-07-21 10:54:45