DarkRoomW.frmMain.prtDoc_PrintPage C# (CSharp) Method

prtDoc_PrintPage() private method

private prtDoc_PrintPage ( object sender, System e ) : void
sender object
e System
return void
        private void prtDoc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Font font = txtPage.Font;
            Int32 PrintAreaHeight, PrintAreaWidth, marginLeft, marginTop;

            PrintAreaHeight = prtDoc.DefaultPageSettings.PaperSize.Height - prtDoc.DefaultPageSettings.Margins.Top - prtDoc.DefaultPageSettings.Margins.Bottom;
            PrintAreaWidth = prtDoc.DefaultPageSettings.PaperSize.Width - prtDoc.DefaultPageSettings.Margins.Left - prtDoc.DefaultPageSettings.Margins.Right;
            marginLeft = prtDoc.DefaultPageSettings.Margins.Left;
            marginTop = prtDoc.DefaultPageSettings.Margins.Top;

            if (prtDoc.DefaultPageSettings.Landscape)
            {
                Int32 intTemp;
                intTemp = PrintAreaHeight;
                PrintAreaHeight = PrintAreaWidth;
                PrintAreaWidth = intTemp;
            }

            Int32 intLineCount = System.Convert.ToInt32(PrintAreaHeight / font.Height);
            RectangleF rectPrintingArea = new RectangleF(marginLeft, marginTop, PrintAreaWidth, PrintAreaHeight);
            StringFormat fmt = new StringFormat(StringFormatFlags.LineLimit);
            Int32 intLinesFilled;
            Int32 intCharsFitted;
            e.Graphics.MeasureString(Eclectic.Mid(txtPage.Text, intCurrentChar), font, new SizeF(PrintAreaWidth, PrintAreaHeight), fmt, out intCharsFitted, out intLinesFilled);
            e.Graphics.DrawString(Eclectic.Mid(txtPage.Text, intCurrentChar), font, Brushes.Black, rectPrintingArea, fmt);
            intCurrentChar += intCharsFitted;
            if (intCurrentChar < (txtPage.Text.Length - 1))
            {
                e.HasMorePages = true;
            }
            else
            {
                e.HasMorePages = false;
                intCurrentChar = 0;
            }
        }