GlobalAccessSoftware icon

MyPrintEvent2.cs

GlobalAccessSoftware | PRO | 04/26/19 09:26:26 AM UTC | 0 ⭐ | 715 👁️ | Never ⏰ | []
C# |

4.79 KB

|

None

|

0 👍

/

0 👎

 
 
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
// MyPrintEvent2.cs Split out 16-Mar-2019
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
// v5.0.6.01 22-Feb-2019 Dialing all in Now!
// v5.0.6.01 02-Mar-2019 FixedWell with MPP
// Menu items calling back across, etc.
// v5.0.6.02 08-Mar-2019 Batch Stuff & Debug
// v5.0.6.03 14-Mar-2019 ReSetPages Call.
// v5.0.6.03 16-Mar-2019 Split to simplify.
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
// v5.0.6.04 25-Mar-2019 FixedWell & nearly
// done. This is really working great now &
// with SomePages2! Design ready: CurrentPage
// PrintDialog Option to go into Selection.
// Nearly all of that Logic will have to be
// in ME. Since that's where BOTH
// CurrentPage & Selection are or are going
// to have to come from. And at some point
// I will have to ReRoute or Mod or ReTest
// the 2nd Instance Code in PrintForm2.cs
// in PrintBlaster Deluxe. Or Call Print
// Functions directly:
// from Smesa to MCPL eventually maybe.
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
// v5.0.6.04 29-Mar-2019 Tested & Clean!
// v5.1.6.06 13-Apr Sel & CurPag detail.
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
 
using System.Drawing;
using System.Drawing.Printing;
using MCC = MyCustomControls.CustomControl;
using MPC = MyCustomPrintLibrary.MyPrintClass;
using MFC = MyCustomPrintLibrary.MyFontClass;
 
using MPR = MyCustomPrintLibrary
  .Properties.Resources;
using MPS = MyCustomPrintLibrary
  .Properties.Settings;
 
 
namespace MyCustomPrintLibrary
{
  public static partial class MyPrintEvent
  {
    private static void MyPrintEvent2(
      ref PrintPageEventArgs e)
    {
      if (_firstPage)
      {
        _firstPage = false;
        if (e.PageSettings
          .PrinterSettings.PrintRange
            .Equals(PrintRange.SomePages))
          SomePages1(ref e);
      }
 
      if (e.PageSettings.PrinterSettings
        .PrintRange.Equals(
          PrintRange.SomePages))
            SomePages2(ref e);
 
      if (e.PageSettings.PrinterSettings
        .PrintRange.Equals(
          PrintRange.AllPages))
        PrintThisPageNow(e);
 
      if (!e.PageSettings.PrinterSettings
          .PrintRange.Equals(
          PrintRange.CurrentPage)
       && !e.PageSettings.PrinterSettings
          .PrintRange.Equals(
        PrintRange.Selection)) return;
 
      // else is Selection, do till done.
      if (!string.IsNullOrEmpty(
        StrToPrint)) PrintThisPageNow(e);
 
      // or CurrentPage. (when applicable)
      if (e.PageSettings.PrinterSettings
          .PrintRange.Equals(
            PrintRange.CurrentPage))
        StrToPrint = "";
      // CurrentPage  ^ Exits cut it short.
    }
 
    // Perfected v5.0.6.04 25-Mar-2019 -JpE-
    private static void SomePages2(
      ref PrintPageEventArgs e)
    {
      // Skip ahead to the FromPage if needed.
      while (++CurrentPage < e.PageSettings
        .PrinterSettings.FromPage)
          StrToPrint = StrToPrint
            .Substring(GetCharsNum(
              e, StrToPrint));
 
      PrintThisPageNow(e);
 
      // Print ^ from FromPage to ToPage only.
      if (CurrentPage >= e.PageSettings
        .PrinterSettings.ToPage)
          StrToPrint = "";
      // After ToPage cut it short. (Exits)
    }
 
    private static int GetCharsNum(
      PrintPageEventArgs e, string str2Prnt)
    {
      int charsOnPage, linesPerPage;
      // Atypical
      e.Graphics.MeasureString(str2Prnt,
        MFC.MyFontDialog.Font,
        e.MarginBounds.Size,
        StringFormat.GenericTypographic,
        out charsOnPage, out linesPerPage);
 
      return charsOnPage;
    }
 
    private static void PrintThisPageNow(
      PrintPageEventArgs e)
    {
      var customBrush = new SolidBrush(
        MFC.MyFontDialog.Color);
      try
      {
        e.Graphics.DrawString(
          StrToPrint,
          MFC.MyFontDialog.Font,
          customBrush,
          e.MarginBounds,
          StringFormat.GenericTypographic);
      }
      finally { customBrush.Dispose(); }
    }
    //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
 
 
#region Other Available EventHandlers
 
    //public static void
    //  MyBeginPrintEventHandler(
    //  object sender, PrintEventArgs e)
    //{
    //  // todos BeginPrint if needed.
 
    //  const string txt =
    //    "Print Job Started.";
    //  MessageBox.Show(txt);
    //}
 
    //public static void
    //  MyEndPrintEventHandler(
    //  object sender,
    //  PrintEventArgs printEventArgs)
    //{
    //  // todos EndPrint if needed.
    //  // what do sender and event-args
    //  // contain at this point?
 
    //  const string txt =
    //    "Print Job Completed.";
    //  MessageBox.Show(txt);
    //}
#endregion Other Available Events
    //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
 
 
  }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎