Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在横向(WPF,C#)中打印流程文档?_C#_Wpf_Printing_Flowdocument - Fatal编程技术网

如何在横向(WPF,C#)中打印流程文档?

如何在横向(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

我想以横向模式打印以编程方式创建的flowdocument,我尝试了我找到的所有版本,但都不起作用。 下面是我的代码:

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;