2011-09-28 29 views
6

Baskıda çok sayıda sütundan kaçının FlowDocument'den yazdırmak için kod yazıyorum.FlowDocument

 PrintDialog printDialog = new PrintDialog(); 
     bool? result = printDialog.ShowDialog(); 
     if (result == true) 
     { 
      FlowDocument fd = new FlowDocument(); 
      fd.Blocks.Add(new Paragraph(new Run(String.Format("Message:\r\n{0}\r\n", txtMessage.Text)))); 
      fd.PageHeight = printDialog.PrintableAreaHeight; 
      fd.PageWidth = printDialog.PrintableAreaWidth; 
      printDialog.PrintDocument((fd as IDocumentPaginatorSource).DocumentPaginator, "print test"); 
     } 

Bu kod, bir sayfada birden fazla sütun basacaktır. Bundan nasıl kurtuluruz?

cevap

10

Ben çözdüm. FlowDocument sütun genişliği ayarlamanız gerekir.

fd.PagePadding = new Thickness(50); 
fd.ColumnGap = 0; 
fd.ColumnWidth = printDialog.PrintableAreaWidth; 
+1

Bunun için kısa belgelere sahibim ve burada oturup sayfamın yalnızca yarısının neden kullanıldığını merak ederek kafamı çiziyordum. Neden iki sütun varsayılan olarak aldıklarını merak ediyorum? – Mishax