How to Use The LEADTOOLS Virtual Printer Driver

Show in webframe
Take the following steps to create and run a program that prints using LEADTOOLS printer.
  1. Start Visual Studio .NET.
  2. Choose File->New->Project... from the menu.
  3. In the New Project dialog box, choose either "Visual C# Projects" or "Visual Basic Projects" in the Projects Type List, and choose "Windows Application" in the Templates List.
  4. Type the project name as "PRINTER DRIVER" in the Project Name field, and then click OK. If desired, type a new location for your project or select a directory using the Browse button, and then click OK.
  5. In the "Solution Explorer" window, right-click on the "References" folder, and select "Add Reference..." from the context menu. In the "Add Reference" dialog box, select the ".NET" tab and browse to Leadtools For .NET "<LEADTOOLS_INSTALLDIR>\Bin\DotNet\Win32 " folder and select the following DLLs:
    • Leadtools.dll
    • Leadtools.Printer.dll
  6. Switch to Form1 code view (right-click Form1 in the solution explorer then select View Code ) and add the following lines at the beginning of the file: [Visual Basic]
    
                Imports System.Drawing.Imaging
                Imports System.Drawing.Printing
                Imports Leadtools
                Imports Leadtools.Printer
                
    
    [C#]
    
                using System.Drawing.Imaging;
                using System.Drawing.Printing;
                using Leadtools;
                using Leadtools.Printer;                                
                
    
  7. Declare the following private variable: [Visual Basic]
    
                Private _printer as Printer 
                
    
    [C#]
    
                private Printer _printer; 
                
    
  8. Add an event handler to the Form1 Load event and code it as follows: [Visual Basic]
    
                Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                   Try
                     Dim printerName as string="LEADTOOLS Printer"
                     Dim installedPrinters As List(Of String) = New List(Of String)()
                     For Each printer As String In PrinterSettings.InstalledPrinters
                        installedPrinters.Add(printer)
                     Next
                     If Not installedPrinters.Contains(printerName) Then
                        Dim printerPassword as string="1234"
                        Dim documentPrinterRegPath As String = "SOFTWARE\\LEAD Technologies, Inc.\\Printer\\"
                        Dim printerInfo As New PrinterInfo()
                        printerInfo.MonitorName = printerName
                        printerInfo.PortName = printerName
                        printerInfo.DriverName = printerName
                        printerInfo.ProductName = printerName
                        printerInfo.PrinterName = printerName
                        printerInfo.Password = printerPassword
                        printerInfo.RegistryKey = documentPrinterRegPath + printerName
                        printerInfo.RootDir = "C:\LEADTOOLS 18\Bin\Common\PrinterDriver\"
                        printerInfo.Url = "http://www.Leadtools.com"
                        printerInfo.PrinterExe = Application.ExecutablePath
                        Printer.Install(printerInfo)
                     End If
                     _printer = New Printer(printerName)
                     AddHandler _printer.EmfEvent, AddressOf _printer_EmfEvent
                     AddHandler _printer.JobEvent, AddressOf _printer_JobEvent
                   Catch ex As Exception
                      MessageBox.Show(ex.Message)
                   End Try
                End Sub 
                
    
    [C#]
    
                private void Form1_Load(object sender, System.EventArgs e)
                {
                   try
                   {
                       string printerName="LEADTOOLS Printer";
                       List<string> installedPrinters = new List<string>();
                       foreach (string printer in PrinterSettings.InstalledPrinters)
                          installedPrinters.Add(printer);
                       if (!installedPrinters.Contains(printerName))
                       {
                          string printerPassword="1234";
                          string documentPrinterRegPath = @"SOFTWARE\LEAD Technologies, Inc.\Printer\";
                          PrinterInfo printerInfo = new PrinterInfo();
                          printerInfo.MonitorName = printerName;
                          printerInfo.PortName = printerName;
                          printerInfo.DriverName = printerName;
                          printerInfo.ProductName = printerName;
                          printerInfo.PrinterName = printerName;
                          printerInfo.Password = printerPassword;
                          printerInfo.RegistryKey = documentPrinterRegPath + printerName;
                          printerInfo.RootDir = @"C:\LEADTOOLS 18\Bin\Common\PrinterDriver\";
                          printerInfo.Url = "http://www.Leadtools.com";
                          printerInfo.PrinterExe = Application.ExecutablePath;
                          Printer.Install(printerInfo);
                       }
                       _printer=new Printer(printerName);
                       _printer.EmfEvent += new EventHandler<EmfEventArgs>(_printer_EmfEvent);
                       _printer.JobEvent += new EventHandler<JobEventArgs>(_printer_JobEvent);
                   }
                   catch (Exception ex)
                   {
                      MessageBox.Show(this, ex.Message);
                   }
                } 
                
    
  9. Add an event handler to the Emf event and code it as follows: [Visual Basic]
    
                Private Sub _printer_EmfEvent(ByVal sender As Object, ByVal e As EmfEventArgs)
                   System.IO.File.WriteAllBytes("c:\LEADTOOLS_IMAGE1.emf", e.Stream.ToArray())
                   Dim metaFile As New Metafile(e.Stream)
                End Sub 
                
    
    [C#]
    
                void _printer_EmfEvent(object sender, EmfEventArgs e)
                {
                  System.IO.File.WriteAllBytes(@"c:\1.emf", e.Stream.ToArray());
                  Metafile metaFile = new Metafile(e.Stream);
                } 
                
    
  10. Add an event handler to the job info event and code it as follows: [Visual Basic]
    
                Private Sub _printer_JobEvent(ByVal sender As Object, ByVal e As JobEventArgs)
                    Dim printerName As String = e.PrinterName
                    Dim jobID As Integer = e.JobID
                    If e.JobEventState = EventState.JobStart Then
                       MessageBox.Show(String.Format("Job {0} was started", jobID))
                    ElseIf e.JobEventState = EventState.JobEnd Then
                       MessageBox.Show(String.Format("Job {0} was Ended", jobID))
                    End If
                End Sub 
                
    
    [C#]
    
                void _printer_JobEvent(object sender, JobEventArgs e)
                {
                   string printerName = e.PrinterName;
                   int jobID = e.JobID;
                   
                   if (e.JobEventState == EventState.JobStart)
                   {
                       MessageBox.Show(string.Format("Job {0} was started",jobID));
                   }
                   else if (e.JobEventState == EventState.JobEnd)
                   {
                      MessageBox.Show(string.Format("Job {0} was Ended",jobID));
                   }
                } 
                
    
  11. Build, and Run the program to test it.

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.