コード例 #1
0
        private void PrintDoc(SelectablePrintDocument doc, PageOrientation orientation, int copies)
        {
            if (doc == null)
            {
                return;
            }

            switch (doc.Document.PrintType)
            {
            case PrinterType.RDL:
                var reportInfo = (doc.Document as IPrintableRDLDocument).GetReportInfo();

                var action = showDialog ? PrintOperationAction.PrintDialog : PrintOperationAction.Print;
                showDialog = false;

                Printer             = new PrintOperation();
                Printer.Unit        = Unit.Points;
                Printer.UseFullPage = true;

                Printer.PrintSettings = PrintSettings ?? new PrintSettings();

                Printer.PrintSettings.Orientation = orientation;

                var rprint = new ReportPrinter(reportInfo);
                rprint.PrepareReport();

                Printer.NPages = rprint.PageCount;
                Printer.PrintSettings.NCopies = copies;
                if (copies > 1)
                {
                    Printer.PrintSettings.Collate = true;
                }

                Printer.DrawPage += rprint.DrawPage;
                Printer.Run(action, null);

                PrintSettings = Printer.PrintSettings;
                break;

            case PrinterType.ODT:
            case PrinterType.None:
            default:
                break;
            }
        }
コード例 #2
0
 public void PrintDocument(SelectablePrintDocument doc)
 {
     PrintableDocuments?.Clear();
     PrintableDocuments.Add(doc);
     PrintSelectedDocuments();
 }
コード例 #3
0
 public void PrintDocument(SelectablePrintDocument doc)
 {
     showDialog = true;
     PrintDoc(doc, PageOrientation.Portrait, doc.Copies);
 }