using System; using System.Linq; using System.Windows.Forms; using System.Drawing.Printing; using System.Runtime.InteropServices; namespace Neo.LegitimateLicences.ActiveX.Printing.OperatingLicence { [Guid("345CFC80-2FDB-4D3D-9D1E-DDD5F1F5D4F7")] public interface IOperatingLicencePrinterInterface { void PrintOperatingLicence(string associationName, string rasRegistrationNumber, string operatingLicenceNumber, string applicationNumber, string iDNumber, string name, string address, string vehicleRegNumber, string grossVehicleMass, string engineNumber, string chassisNumber, string manufacture, string passengers, string vehicleDescription, string crossBorderPermit, string validFrom, string validTo, string board, string documentNumber, string yearOfFirstReg, string printedBy, string printedDate, short copies, string printerPath, int height, int width, bool preview, int applicationRequestTypeId, int lb1 = 90, int lb2 = 15, int lb3 = 55, int lb4 = 15, int lb5 = 20, int lb6 = 2, int lb7 = 15, int lb8 = 10, int lb9 = 15, int lb10 = 15, int lb11 = 15, int lb12 = 15, int lb13 = 15, int lb14 = 15, int lb15 = 5, int lb16 = 2, int lb17 = 15, int lb18 = 10, int lb19 = 15, int lb20 = 15, int lb21 = 15, int lb22 = 15, int lb23 = 15, int lb24 = 15, int lb25 = 15, int lb26 = 15, int lb27 = 2, int lb28 = 15, int lb29 = 10, int lb30 = 15, int lb31 = 15, int lb32 = 30, int lb33 = 30, int lb34 = 45, int lb35 = 12, int lb36 = 30, int lb37 = 25, int lb38 = 25, int lb39 = 5, int lb40 = 25, int lb41 = 15, int lb42 = 15, int lb43 = 15, int lb44 = 15, int lb45 = 15, int lb46 = 15, int lb47 = 15, int lb48 = 15, int lb49 = 15, int lb50 = 15, int lb51 = 15, int lb52 = 15, int lb53 = 15, int lb54 = 960, int lb55 = 980); void PrintOperatingLicenceTestPage(string associationName, string rasRegistrationNumber, string operatingLicenceNumber, string applicationNumber, string iDNumber, string name, string address, string vehicleRegNumber, string grossVehicleMass, string engineNumber, string chassisNumber, string manufacture, string passengers, string vehicleDescription, string crossBorderPermit, string validFrom, string validTo, string board, string yearOfFirstReg, string printedBy, string printedDate, short copies, string printerPath, int height, int width, int applicationRequestTypeId, int lb1 = 90, int lb2 = 15, int lb3 = 55, int lb4 = 15, int lb5 = 20, int lb6 = 2, int lb7 = 15, int lb8 = 10, int lb9 = 15, int lb10 = 15, int lb11 = 15, int lb12 = 15, int lb13 = 15, int lb14 = 15, int lb15 = 5, int lb16 = 2, int lb17 = 15, int lb18 = 10, int lb19 = 15, int lb20 = 15, int lb21 = 15, int lb22 = 15, int lb23 = 15, int lb24 = 15, int lb25 = 15, int lb26 = 15, int lb27 = 2, int lb28 = 15, int lb29 = 10, int lb30 = 15, int lb31 = 15, int lb32 = 30, int lb33 = 30, int lb34 = 45, int lb35 = 12, int lb36 = 30, int lb37 = 25, int lb38 = 25, int lb39 = 5, int lb40 = 25, int lb41 = 15, int lb42 = 15, int lb43 = 15, int lb44 = 15, int lb45 = 15, int lb46 = 15, int lb47 = 15, int lb48 = 15, int lb49 = 15, int lb50 = 15, int lb51 = 15, int lb52 = 15, int lb53 = 15, int lb54 = 960, int lb55 = 980); } [ProgId("Neo.LegitimateLicences.OperatingLicencePrinterControl")] [Guid("9EB03D9B-1DA4-4174-A0F9-81B03F62D46C")] [ClassInterface(ClassInterfaceType.None)] public partial class OperatingLicencePrinterControl : UserControl, IOperatingLicencePrinterInterface { #region Properties #region HEADER private int _lb1; private int _lb2; private int _lb3; private int _lb4; private int _lb5; #endregion #region LICENCE HOLDER PARTICULARS private int _lb6; private int _lb7; private int _lb8; private int _lb9; private int _lb10; private int _lb11; private int _lb12; private int _lb13; private int _lb14; #endregion #region VEHICLE PARTICULARS private int _lb15; private int _lb16; private int _lb17; private int _lb18; private int _lb19; private int _lb20; private int _lb21; private int _lb22; private int _lb23; private int _lb24; private int _lb25; #endregion #region OPERATING LICENCE PARTICULARS private int _lb26; private int _lb27; private int _lb28; private int _lb29; private int _lb30; private int _lb31; private int _lb32; #endregion #region ANNEXURE 1 private int _lb33; private int _lb34; private int _lb35; private int _lb36; private int _lb37; private int _lb38; private int _lb39; private int _lb40; private int _lb41; private int _lb42; private int _lb43; private int _lb44; private int _lb45; private int _lb46; private int _lb47; private int _lb48; private int _lb49; private int _lb50; private int _lb51; private int _lb52; private int _lb53; private int _lb54; #endregion private int _applicationRequestTypeId; private bool _isTest; #endregion #region OperatingLicencePrinterControl public OperatingLicencePrinterControl() { InitializeComponent(); #region Testing AssociationNameTextBox.Text = "COPESVILLE ALLANDALE EZENKETHENI TAXI ASSOCIATION"; RASRegistrationNumberTextBox.Text = "123456789"; OLNumberTextBox.Text = "LGKZN0403000001/1"; ApplicationNumberTextBox.Text = "APP0000404"; IDNumberTextBox.Text = "6810235543085"; NameTextBox.Text = "AMAFUZE TRANSPORTERS (PTY) LTD"; AddressTextBox.Text = "9 ANNE DRIVE,MONTROSE,PIETERMARITZBURG,KWAZULU-NATAL,KWA-ZULU NATAL,3201"; VehicleRegistrationNumberTextBox.Text = "NP98391"; GrossVehicleMassTextBox.Text = "1998"; EngineNumerTextBox.Text = "2TR8101276"; ChassisNumberTextBox.Text = "JTFSX22P406030889"; ManufactureTextBox.Text = "TOYOTA"; PassengersTextBox.Text = "14 (Seated)"; VehicleDescriptionTextBox.Text = "MINIBUS"; CrossBorderPermitTextBox.Text = "NO"; ValidFromTextBox.Text = DateTime.Now.ToShortDateString(); ValidToTextBox.Text = (DateTime.Now.AddYears(5)).ToShortDateString(); BoardTextBox.Text = "KZN Provincial Regulatory Entity Adjudication Panel"; DocumentNumberTextBox.Text = "Y0613014"; CopiesTextBox.Text = "1"; PrinterPathTextBox.Text = "Microsoft XPS Document Writer"; PrintedDateTextBox.Text = "10 Oct 2015 10:00AM"; HeightTextBox.Text = "297"; WidthTextBox.Text = "210"; PreviewCheckBox.Checked = true; _lb1 = 90; _lb2 = 15; _lb3 = 55; _lb4 = 15; _lb5 = 20; _lb6 = 2; _lb7 = 15; _lb8 = 10; _lb9 = 15; _lb10 = 15; _lb11 = 15; _lb12 = 15; _lb13 = 15; _lb14 = 15; _lb15 = 5; _lb16 = 2; _lb17 = 15; _lb18 = 10; _lb19 = 15; _lb20 = 15; _lb21 = 15; _lb22 = 15; _lb23 = 15; _lb24 = 15; _lb25 = 15; _lb26 = 15; _lb27 = 2; _lb28 = 15; _lb29 = 10; _lb30 = 15; _lb31 = 15; _lb32 = 30; _lb33 = 30; _lb34 = 45; _lb35 = 12; _lb36 = 30; _lb37 = 25; _lb38 = 25; _lb39 = 5; _lb40 = 25; _lb41 = 15; _lb42 = 15; _lb43 = 15; _lb44 = 15; _lb45 = 15; _lb46 = 15; _lb47 = 15; _lb48 = 15; _lb49 = 15; _lb50 = 15; _lb51 = 15; _lb52 = 15; _lb53 = 15; _lb54 = 960; #endregion } #endregion #region public PrintOperatingLicence method public void PrintOperatingLicence(string associationName, string rasRegistrationNumber, string operatingLicenceNumber, string applicationNumber, string iDNumber, string name, string address, string vehicleRegNumber, string grossVehicleMass, string engineNumber, string chassisNumber, string manufacture, string passengers, string vehicleDescription, string crossBorderPermit, string validFrom, string validTo, string board, string documentNumber, string yearOfFirstReg, string printedBy, string printedDate, short copies, string printerPath, int height, int width, bool preview, int applicationRequestTypeId, int lb1, int lb2, int lb3, int lb4, int lb5, int lb6, int lb7, int lb8, int lb9, int lb10, int lb11, int lb12, int lb13, int lb14, int lb15, int lb16, int lb17, int lb18, int lb19, int lb20, int lb21, int lb22, int lb23, int lb24, int lb25, int lb26, int lb27, int lb28, int lb29, int lb30, int lb31, int lb32, int lb33, int lb34, int lb35, int lb36, int lb37, int lb38, int lb39, int lb40, int lb41, int lb42, int lb43, int lb44, int lb45, int lb46, int lb47, int lb48, int lb49, int lb50, int lb51, int lb52, int lb53, int lb54, int lb55) { _lb1 = lb1; _lb2 = lb2; _lb3 = lb3; _lb4 = lb4; _lb5 = lb5; _lb6 = lb6; _lb7 = lb7; _lb8 = lb8; _lb9 = lb9; _lb10 = lb10; _lb11 = lb11; _lb12 = lb12; _lb13 = lb13; _lb14 = lb14; _lb15 = lb15; _lb16 = lb16; _lb17 = lb17; _lb18 = lb18; _lb19 = lb19; _lb20 = lb20; _lb21 = lb21; _lb22 = lb22; _lb23 = lb23; _lb24 = lb24; _lb25 = lb25; _lb26 = lb26; _lb27 = lb27; _lb28 = lb28; _lb29 = lb29; _lb30 = lb30; _lb31 = lb31; _lb32 = lb32; _lb33 = lb33; _lb34 = lb34; _lb35 = lb35; _lb36 = lb36; _lb37 = lb37; _lb38 = lb38; _lb39 = lb39; _lb40 = lb40; _lb41 = lb41; _lb42 = lb42; _lb43 = lb43; _lb44 = lb44; _lb45 = lb45; _lb46 = lb46; _lb47 = lb47; _lb48 = lb48; _lb49 = lb49; _lb50 = lb50; _lb51 = lb51; _lb52 = lb52; _lb53 = lb53; _lb54 = lb54; _applicationRequestTypeId = applicationRequestTypeId; _isTest = false; AssociationNameTextBox.Text = associationName; RASRegistrationNumberTextBox.Text = rasRegistrationNumber; OLNumberTextBox.Text = operatingLicenceNumber; ApplicationNumberTextBox.Text = applicationNumber; IDNumberTextBox.Text = iDNumber; NameTextBox.Text = name; AddressTextBox.Text = address; VehicleRegistrationNumberTextBox.Text = vehicleRegNumber; GrossVehicleMassTextBox.Text = grossVehicleMass; EngineNumerTextBox.Text = engineNumber; ChassisNumberTextBox.Text = chassisNumber; ManufactureTextBox.Text = manufacture; PassengersTextBox.Text = passengers; VehicleDescriptionTextBox.Text = vehicleDescription; CrossBorderPermitTextBox.Text = crossBorderPermit; ValidFromTextBox.Text = validFrom; ValidToTextBox.Text = validTo; BoardTextBox.Text = board; DocumentNumberTextBox.Text = documentNumber; YearOfFirstRegTextBox.Text = yearOfFirstReg; PrintedDateTextBox.Text = printedDate; if (copies.ToString() == "999") { var userInput = Microsoft.VisualBasic.Interaction.InputBox("Please enter the number of receipts you would like to print.", "Print receipts", "6", 400, 400).ToString(); try { if (userInput.Length == 0) { throw new Exception("Invalid Input"); } var numberCopies = Int32.Parse(userInput); CopiesTextBox.Text = numberCopies.ToString(); } catch { MessageBox.Show("Invalid number entered."); return; } } else { CopiesTextBox.Text = copies.ToString(); } HeightTextBox.Text = height.ToString(); WidthTextBox.Text = width.ToString(); PreviewCheckBox.Checked = preview; PrinterPathTextBox.Text = GetPrinter(printerPath); if (PrinterPathTextBox.Text.Length == 0) { MessageBox.Show("No printers found."); } else { try { Print(); if (!preview) { MessageBox.Show(CopiesTextBox.Text + " copies printed to " + PrinterPathTextBox.Text + (char)13 + (char)10 + "Please ensure there are no blank licence forms in the printer and click OK"); } } catch (Exception e) { MessageBox.Show(e.Message); } } } #endregion #region public PrintOperatingLicenceTestPage method public void PrintOperatingLicenceTestPage(string associationName, string rasRegistrationNumber, string operatingLicenceNumber, string applicationNumber, string iDNumber, string name, string address, string vehicleRegNumber, string grossVehicleMass, string engineNumber, string chassisNumber, string manufacture, string passengers, string vehicleDescription, string crossBorderPermit, string validFrom, string validTo, string board, string yearOfFirstReg, string printedBy, string printedDate, short copies, string printerPath, int height, int width, int applicationRequestTypeId, int lb1, int lb2, int lb3, int lb4, int lb5, int lb6, int lb7, int lb8, int lb9, int lb10, int lb11, int lb12, int lb13, int lb14, int lb15, int lb16, int lb17, int lb18, int lb19, int lb20, int lb21, int lb22, int lb23, int lb24, int lb25, int lb26, int lb27, int lb28, int lb29, int lb30, int lb31, int lb32, int lb33, int lb34, int lb35, int lb36, int lb37, int lb38, int lb39, int lb40, int lb41, int lb42, int lb43, int lb44, int lb45, int lb46, int lb47, int lb48, int lb49, int lb50, int lb51, int lb52, int lb53, int lb54, int lb55) { _lb1 = lb1; _lb2 = lb2; _lb3 = lb3; _lb4 = lb4; _lb5 = lb5; _lb6 = lb6; _lb7 = lb7; _lb8 = lb8; _lb9 = lb9; _lb10 = lb10; _lb11 = lb11; _lb12 = lb12; _lb13 = lb13; _lb14 = lb14; _lb15 = lb15; _lb16 = lb16; _lb17 = lb17; _lb18 = lb18; _lb19 = lb19; _lb20 = lb20; _lb21 = lb21; _lb22 = lb22; _lb23 = lb23; _lb24 = lb24; _lb25 = lb25; _lb26 = lb26; _lb27 = lb27; _lb28 = lb28; _lb29 = lb29; _lb30 = lb30; _lb31 = lb31; _lb32 = lb32; _lb33 = lb33; _lb34 = lb34; _lb35 = lb35; _lb36 = lb36; _lb37 = lb37; _lb38 = lb38; _lb39 = lb39; _lb40 = lb40; _lb41 = lb41; _lb42 = lb42; _lb43 = lb43; _lb44 = lb44; _lb45 = lb45; _lb46 = lb46; _lb47 = lb47; _lb48 = lb48; _lb49 = lb49; _lb50 = lb50; _lb51 = lb51; _lb52 = lb52; _lb53 = lb53; _lb54 = lb54; _applicationRequestTypeId = applicationRequestTypeId; _isTest = true; AssociationNameTextBox.Text = associationName; RASRegistrationNumberTextBox.Text = rasRegistrationNumber; OLNumberTextBox.Text = operatingLicenceNumber; ApplicationNumberTextBox.Text = applicationNumber; IDNumberTextBox.Text = iDNumber; NameTextBox.Text = name; AddressTextBox.Text = address; VehicleRegistrationNumberTextBox.Text = vehicleRegNumber; GrossVehicleMassTextBox.Text = grossVehicleMass; EngineNumerTextBox.Text = engineNumber; ChassisNumberTextBox.Text = chassisNumber; ManufactureTextBox.Text = manufacture; PassengersTextBox.Text = passengers; VehicleDescriptionTextBox.Text = vehicleDescription; CrossBorderPermitTextBox.Text = crossBorderPermit; ValidFromTextBox.Text = validFrom; ValidToTextBox.Text = validTo; BoardTextBox.Text = board; DocumentNumberTextBox.Text = "TESTDOC"; YearOfFirstRegTextBox.Text = yearOfFirstReg; PrintedDateTextBox.Text = printedDate; CopiesTextBox.Text = "1"; HeightTextBox.Text = height.ToString(); WidthTextBox.Text = width.ToString(); PreviewCheckBox.Checked = true; PrinterPathTextBox.Text = GetPrinter(printerPath); if (PrinterPathTextBox.Text.Length == 0) { MessageBox.Show("No printers found."); } else { try { Print(); } catch (Exception e) { MessageBox.Show(e.Message); } } } #endregion #region private Print() Method private void Print() { if (!_isTest) { if (Microsoft.VisualBasic.Interaction.MsgBox("Please put the blank licence in the printer and click OK" + (char)13 + (char)10 + "Printing Operating Licence For: " + NameTextBox.Text + (char)13 + (char)10 + "Certificate Number: " + DocumentNumberTextBox.Text, Microsoft.VisualBasic.MsgBoxStyle.OkOnly, "Confirm") != Microsoft.VisualBasic.MsgBoxResult.Ok) { return; } } var operatingLicencePrinter = new OperatingLicencePrinter(AssociationNameTextBox.Text, RASRegistrationNumberTextBox.Text, OLNumberTextBox.Text, ApplicationNumberTextBox.Text, IDNumberTextBox.Text, NameTextBox.Text, AddressTextBox.Text, VehicleRegistrationNumberTextBox.Text, GrossVehicleMassTextBox.Text, EngineNumerTextBox.Text, ChassisNumberTextBox.Text, ManufactureTextBox.Text, PassengersTextBox.Text, VehicleDescriptionTextBox.Text, CrossBorderPermitTextBox.Text, ValidFromTextBox.Text, ValidToTextBox.Text, BoardTextBox.Text, DocumentNumberTextBox.Text, YearOfFirstRegTextBox.Text, PrintedDateTextBox.Text, Convert.ToInt16(CopiesTextBox.Text), PrinterPathTextBox.Text, Convert.ToInt16(HeightTextBox.Text), Convert.ToInt16(WidthTextBox.Text), PreviewCheckBox.Checked, _applicationRequestTypeId, _lb1, _lb2, _lb3, _lb4, _lb5, _lb6, _lb7, _lb8, _lb9, _lb10, _lb11, _lb12, _lb13, _lb14, _lb15, _lb16, _lb17, _lb18, _lb19, _lb20, _lb21, _lb22, _lb23, _lb24, _lb25, _lb26, _lb27, _lb28, _lb29, _lb30, _lb31, _lb32, _lb33, _lb34, _lb35, _lb36, _lb37, _lb38, _lb39, _lb40, _lb41, _lb42, _lb43, _lb44, _lb45, _lb46, _lb47, _lb48, _lb49, _lb50, _lb51, _lb52, _lb53, _lb54, _isTest); operatingLicencePrinter.Print(); } #endregion #region getPrinter private static string GetPrinter(string printerPath) { var printerName = ""; foreach (var printer in PrinterSettings.InstalledPrinters.Cast().Where(printer => printer.ToLower().Contains(printerPath.ToLower()))) { printerName = printer; } //Revert to default printer if name not found if (printerName == "") { PrinterSettings settings = new PrinterSettings(); foreach (string printer in PrinterSettings.InstalledPrinters) { settings.PrinterName = printer; if (settings.IsDefaultPrinter) { printerName = printer; break; } } } return printerName; } #endregion #region PrintButtonClick private void PrintButtonClick(object sender, EventArgs e) { Print(); } #endregion } }