public override void OnEndPrint(PrintDocument document, PrintEventArgs e)
 {
     SysPrn.GlobalService.EndDoc(e.GraphicsContext);
 }
 public override void OnEndPrint(PrintDocument document, PrintEventArgs e)
 {
 }
Beispiel #3
0
        // methods
        public void Print()
        {
            PrintEventArgs printArgs = new PrintEventArgs();

            this.OnBeginPrint(printArgs);
            if (printArgs.Cancel)
            {
                return;
            }
            PrintController.OnStartPrint(this, printArgs);
            if (printArgs.Cancel)
            {
                return;
            }

            Graphics g = null;

            if (printArgs.GraphicsContext != null)
            {
                g = Graphics.FromHdc(printArgs.GraphicsContext.Hdc);
                printArgs.GraphicsContext.Graphics = g;
            }

            // while there are more pages
            PrintPageEventArgs printPageArgs;

            do
            {
                QueryPageSettingsEventArgs queryPageSettingsArgs = new QueryPageSettingsEventArgs(
                    DefaultPageSettings.Clone() as PageSettings);
                OnQueryPageSettings(queryPageSettingsArgs);

                PageSettings pageSettings = queryPageSettingsArgs.PageSettings;
                printPageArgs = new PrintPageEventArgs(
                    g,
                    pageSettings.Bounds,
                    new Rectangle(0, 0, pageSettings.PaperSize.Width, pageSettings.PaperSize.Height),
                    pageSettings);

                // TODO: We should create a graphics context for each page since they can have diferent paper
                // size, orientation, etc. We use a single graphic for now to keep Cairo using a single PDF file.

                printPageArgs.GraphicsContext = printArgs.GraphicsContext;
                Graphics pg = PrintController.OnStartPage(this, printPageArgs);

                // assign Graphics in printPageArgs
                printPageArgs.SetGraphics(pg);

                if (!printPageArgs.Cancel)
                {
                    this.OnPrintPage(printPageArgs);
                }

                PrintController.OnEndPage(this, printPageArgs);
                if (printPageArgs.Cancel)
                {
                    break;
                }
            } while (printPageArgs.HasMorePages);

            this.OnEndPrint(printArgs);
            PrintController.OnEndPrint(this, printArgs);
        }