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; } }
public void PrintDocument(SelectablePrintDocument doc) { PrintableDocuments?.Clear(); PrintableDocuments.Add(doc); PrintSelectedDocuments(); }
public void PrintDocument(SelectablePrintDocument doc) { showDialog = true; PrintDoc(doc, PageOrientation.Portrait, doc.Copies); }