如何在横向(WPF,C#)中打印流程文档?
我想以横向模式打印以编程方式创建的flowdocument,我尝试了我找到的所有版本,但都不起作用。 下面是我的代码:如何在横向(WPF,C#)中打印流程文档?,c#,wpf,printing,flowdocument,C#,Wpf,Printing,Flowdocument,我想以横向模式打印以编程方式创建的flowdocument,我尝试了我找到的所有版本,但都不起作用。 下面是我的代码: try { // Create a PrintDialog PrintDialog printDlg = new PrintDialog(); printDlg.PrintTicket.PageOrientation = System.Printing.Pa
try
{
// Create a PrintDialog
PrintDialog printDlg = new PrintDialog();
printDlg.PrintTicket.PageOrientation = System.Printing.PageOrientation.Landscape;
// Create a FlowDocument dynamically.
FlowDocument doc = CreateFlowDocumentSum();
doc.Name = "FlowDoc";
doc.ColumnWidth = printDlg.PrintableAreaWidth;
// Create IDocumentPaginatorSource from FlowDocument
IDocumentPaginatorSource idpSource = doc;
// Call PrintDocument method to send document to printer
printDlg.PrintDocument(idpSource.DocumentPaginator, "sum");
doc.Blocks.Clear();
sumTable.Clear();
}
catch
{ }
我终于做到了。
刚刚修改了打印按钮事件中的代码:
PrintDialog printDlg = new PrintDialog();
LocalPrintServer ps = new LocalPrintServer();
PrintQueue pq = ps.DefaultPrintQueue;
PrintTicket pt = pq.UserPrintTicket;
pt.PageOrientation = PageOrientation.Landscape;
FlowDocument doc = CreateFlowDocumentSum();
doc.PageHeight = 768;
doc.PageWidth = 1104;
PageMediaSize pageMediaSize = new PageMediaSize(doc.PageWidth, doc.PageHeight);
pt.PageMediaSize = pageMediaSize;
IDocumentPaginatorSource source = doc as IDocumentPaginatorSource;
printDlg.PrintDocument(source.DocumentPaginator, "sum");
然后在我的FlowDocument中设置宽度和高度:
FlowDocument docSum = new FlowDocument();
docSum.PageHeight = 768;
docSum.PageWidth = 1104;
docSum.ColumnWidth = 1104;