protected virtual void PrintHandler(Object sender, PrintPageEventArgs ev) { var layout = PrintingLayoutFactory.GetLayout(Document, PrintingLabels.ElementAt(Index), Width, Height); layout.Print(ev); ++Index; ++Count; ev.HasMorePages = Index < PrintingLabels.Count() && Count < MaxPagesPerDocument; }
protected virtual void EndPrintHandler(Object sender, PrintEventArgs ev) { if (Index < PrintingLabels.Count() && Count >= MaxPagesPerDocument) { Count = 0; var prevDocument = Document; Document = new PrintDocument(); Document.PrintPage += new PrintPageEventHandler(PrintHandler); Document.EndPrint += new PrintEventHandler(EndPrintHandler); Document.DefaultPageSettings = prevDocument.DefaultPageSettings; Document.PrinterSettings = prevDocument.PrinterSettings; Document.Print(); prevDocument.Dispose(); } }