Take the following steps to create and run a program that prints using the LEADTOOLS printer.
Start Visual Studio.
Requirement:
Visual Studio must run as an administrator for this tutorial to work correctly. For instructions on how to switch from normal use to administrator, refer to Run Visual Studio as an administrator.
Choose File->New->Project... from the menu.
In the New Project dialog box, choose either "Visual C# Projects" or "VB Projects" in the Projects Type List, and choose "Windows Application" in the Templates List.
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.
In the "Solution Explorer" window, right-click 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:
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:
Imports System.Drawing.ImagingImports System.Drawing.PrintingImports LeadtoolsImports Leadtools.Printer
using System.Drawing.Imaging;using System.Drawing.Printing;using Leadtools;using Leadtools.Printer;
Declare the following private variable:
Private _printer as Printer private Printer _printer; Add an event handler to the Form1 Load event and code it as follows:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadTryDim printerName as string="LEADTOOLS Printer"Dim installedPrinters As List(Of String) = New List(Of String)()For Each printer As String In PrinterSettings.InstalledPrintersinstalledPrinters.Add(printer)NextIf Not installedPrinters.Contains(printerName) ThenDim printerPassword as string="1234"Dim documentPrinterRegPath As String = "SOFTWARE\\LEAD Technologies, Inc.\\Printer\\"Dim printerInfo As New PrinterInfo()printerInfo.MonitorName = printerNameprinterInfo.PortName = printerNameprinterInfo.ProductName = printerNameprinterInfo.PrinterName = printerNameprinterInfo.Password = printerPasswordprinterInfo.RegistryKey = documentPrinterRegPath + printerNameprinterInfo.RootDir = "C:\LEADTOOLS 20\Bin\Common\PrinterDriver\"printerInfo.Url = "https://www.leadtools.com"printerInfo.PrinterExe = Application.ExecutablePathPrinter.Install(printerInfo)End If_printer = New Printer(printerName)AddHandler _printer.EmfEvent, AddressOf _printer_EmfEventAddHandler _printer.JobEvent, AddressOf _printer_JobEventCatch ex As ExceptionMessageBox.Show(ex.Message)End TryEnd Sub
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.ProductName = printerName;printerInfo.PrinterName = printerName;printerInfo.Password = printerPassword;printerInfo.RegistryKey = documentPrinterRegPath + printerName;printerInfo.RootDir = @"C:\LEADTOOLS 20\Bin\Common\PrinterDriver\";printerInfo.Url = "https://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);}}
Add an event handler to the Emf event and code it as follows:
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
void _printer_EmfEvent(object sender, EmfEventArgs e){System.IO.File.WriteAllBytes(@"c:\1.emf", e.Stream.ToArray());Metafile metaFile = new Metafile(e.Stream);}
Add an event handler to the job info event and code it as follows:
Private Sub _printer_JobEvent(ByVal sender As Object, ByVal e As JobEventArgs)Dim printerName As String = e.PrinterNameDim jobID As Integer = e.JobIDIf e.JobEventState = EventState.JobStart ThenMessageBox.Show(String.Format("Job {0} was started", jobID))ElseIf e.JobEventState = EventState.JobEnd ThenMessageBox.Show(String.Format("Job {0} was Ended", jobID))End IfEnd Sub
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));}}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
