Files for redistribution are included in the LEADTOOLS SDK's installation directory for the supported platform.
Note: You may not copy or redistribute any of the following files without obtaining the proper license. In some cases, the license is included with your initial purchase of LEADTOOLS. In other cases, you must obtain a license from a third party or enter into a royalty agreement with LEAD to obtain the proper license. For these special licensing situations, see the notes below accompanying the specific file.
Note: You may not distribute the header files with your application, and you may not provide software development capabilities in your application.
LTKRN is required for ALL C API applications.
LTKRN and LTWVC are required for ALL C++ Class Library applications.
Most of the LEADTOOLS Windows DLLs are compiled with Visual Studio 2017 and are linked statically to the Microsoft Visual C++ 2017 Runtime.
The Microsoft Visual C++ 2017 Redistributable Package cannot be installed on some versions of Windows. For supported versions, see Choosing a Deployment Method and Update for Universal C Runtime in Windows. The Microsoft Visual C++ 2017 Runtime also requires the Windows Universal CRT library, which is distributed as part of Windows 10. For information on how to redistribute the universal CRT, see Introducing the Universal CRT. Only the following DLLs are compiled with requirements for specific versions of the Microsoft Visual C++ Runtime:
Note: For more information about distributing the Microsoft C/C++ runtime files, refer to: https://docs.microsoft.com/en-us/visualstudio/releases/2017/2017-redistribution-vs.
The following table summarizes the files you must include with your distribution. Most files in the table are optional. These files are referred to as "Redistributables" in the License Agreement.
Note: XP / Server 2003: If running within a service on an XP or Server 2003 machine you may run into an issue where the printer installs but does not receive the events. This is a result of the default DCOM authentication settings. To correct this, go to Start > Run and enter "dcomcnfg". Then right-click Component Services > Computers > My Computer and select properties. On the Default Properties tab, select "None" for the Default Authentication Level.
Call the L_PrnInstallPrinter function to install the LEADTOOLS Virtual Printer Module. Pass the PRNPRINTERINFO structure to this function. Use the
pszRootDir member of the PRNPRINTERINFO structure to specify the root folder in which to install the LEADTOOLS Virtual Printer. (For convenience, the root folder will be written as "<PRNPRINTERINFO-pszRootDir>" throughout the rest of this topic). The folder should contain two sub-folders:
Note: All users of the virtual printer must have access to the folder passed to the
Details regarding the directory structure and content are shown below.
The virtual printer uses the Spool folder to store temporary files that are generated while printing.
The Bin folder should contain the following files:
The LeadtoolsPrinter.exe executable file. It is located in the <installationdir>\Bin\Common\PrinterDriver\Bin\ directory, where <installationdir> is the directory in which you installed the LEADTOOLS toolkit.
Copy LeadtoolsPrinter.exe to the <PRNPRINTERINFO-pszRootDir>\Bin directory. The file is required for all operating systems.
The required COM Server files. The COM Server files are located in the <installationdir>\Bin\Common\PrinterDriver\ directory, where <installationdir> is the directory in which you installed the LEADTOOLS toolkit. These files are required for all Operating Systems. Copy the following files to the <PRNPRINTERINFO-pszRootDir>\Bin directory:
|LPCLB||LEADTOOLS Printer COM server. Register using regsvr32 (regsvr32 LPCLB06N.DLL).||LPCLB06N.DLL|
|LPCMG||LEADTOOLS Printer COM Server. Register using /RegServer (LPCMG06N /Regserver)||LPCMG06N.exe|
|LPWSE||LEADTOOLS Printer COM Server. Register using /RegServer (LPWSE06N /Regserver) and unregister using /UnRegServer (LPWSE06N /UnRegServer).||LPWSE06N.EXE|
|LPCPN||LEADTOOLS Printer COM server. Register using regsvr32(regsvr32 LPCPN06N.DLL).||LPCPN06N.dll|
|LPPRNCON||LEADTOOLS Printer COM server. Register using regsvr32 (regsvr32 LPPRNCON.DLL).||LPPRNCON.DLL|
|LpPrinterThunk.exe||LEADTOOLS Printer COM Server. Register using /RegServer (LpPrinterThunk /Regserver) and unregister using /UnRegServer (LpPrinterThunk / UnRegServer).||LpPrinterThunk.exe|
The rest of the installation depends upon how the destination machine is configured. There are four possible configurations:
These files can be found in the <installationdir>\Bin\Common\PrinterDriver\Driver\i386\ directory, where <installationdir>represents the directory in which you installed the LEADTOOLS toolkit.
Copy the following 32-bit Drivers to the System32 folder as shared files. These files should be deployed only for 32-bit operating systems.
|LPDRV||32-bit Driver DLL||LPDRV06N.DLL|
|LPUID||32-bit Driver DLL||LPUID06N.DLL|
|LPPMN||32-bit Port DLL||LPPMN06U.DLL|
These files can be found in the <installationdir>\Bin\Common\PrinterDriver\Driver\amd64\ directory, where <installationdir>, represents the directory in which you installed the LEADTOOLS toolkit.
64-bit Operating Systems: Unless otherwise noted, all 32-bit files should be deployed to the SysWow64 folder and 64-bit files should be deployed to the System32 folder as shared files.
These files should be deployed only for 64-bit operating systems.
Copy the following files to the System32 folder as shared files:
|LPDRV||64-bit Driver DLL||LPDRV06x.DLL|
|LPUID||64-bit Driver DLL||LPUID06x.DLL|
|LPPMN||64-bit Port DLL||LPPMN06x.DLL|
Copy the following files to the SysWow64 folder:
|LPDRV (32-bit Drivers), needed only for network printers.||Driver DLL||LPDRV06N.DLL|
|LPUID (32-bit Drivers), needed only for network printers.||Driver DLL||LPUID06N.DLL|
Printer Driver INF installation for Windows Vista and later:
After an application is developed and ready to redistribute, create a setup.exe that includes all of the necessary files.
Use the following function to install the LEADTOOLS Virtual Printer Driver INF:
#define UPDP_UPLOAD_ALWAYS 0x00000002L
typedef HRESULT (*pUPLOADPRINTERDRIVERPACKAGE)(LPCTSTR pszServer,LPCTSTR pszInfPath,LPCTSTR pszEnvironment,DWORD dwFlags,HWND hwnd,LPTSTR pszDestInfPath,PULONG pcchDestInfPath);
typedef HRESULT (WINAPI * pINSTALLPRINTERDRIVERFROMPACKAGE) (LPCTSTR, LPCTSTR, LPCTSTR, LPCTSTR, DWORD);
L_INT InstallDriverPackage(const L_WCHAR* pszInfPath, const L_WCHAR* pszEnvironment)
L_INT nRet = FAILURE;
HINSTANCE hInstance = LoadLibrary("Winspool.drv");
if (hInstance == NULL)
pUPLOADPRINTERDRIVERPACKAGE pUploadPackage = (pUPLOADPRINTERDRIVERPACKAGE)GetProcAddress(hInstance, "UploadPrinterDriverPackageW");
if (pUploadPackage != NULL)
DWORD dwDestLen = 512;
HRESULT hr = pUploadPackage(NULL,A2W(pszInfPath), pszEnviroment, UPDP_UPLOAD_ALWAYS, GetDesktopWindow(), szDestInfPath, &dwDestLen);
if(hr == S_OK)
pINSTALLPRINTERDRIVERFROMPACKAGE pInstallPrinterDriverFromPackage = (pINSTALLPRINTERDRIVERFROMPACKAGE)GetProcAddress((HMODULE)hInstance, "InstallPrinterDriverFromPackageW");
if(pInstallPrinterDriverFromPackage != NULL)
hr = pInstallPrinterDriverFromPackage(NULL, szDestInfPath, L"LEADTOOLS VIRTUAL PRINTER", pszEnvironment, 0);
if(hr == S_OK)
nRet = SUCCESS;
Install the 32-bit driver package by calling:
InstallDriverPackage(Bin\\Common\\PrinterDriver\\Driver\\LeadtoolsVirtualPrinter.INF, L"Windows NT x86");
Install the 64-bit driver package by calling:
InstallDriverPackage(Bin\\Common\\PrinterDriver\\Driver\\LeadtoolsVirtualPrinter.INF, L"Windows x64");
Note: For Network printing, it is possible to install both packages (x86 and x64) on the Server machine in order to support both types of client machines.
|Application-Specific||For LEADTOOLS SDK core redistributables requirement of the exact assemblies and libraries to use on a specific platform and application, refer to the Files to be Included.|
|Application-Java-Specific||For LEADTOOLS SDK core redistributables requirement of the exact assemblies and libraries to use on Java platforms and applications, refer to the Files to be Included and Files to be Included with your Java Application.|
|Assembly Directory||For LEADTOOLS SDK installation directory information, refer to Installation Directory.|
|Licensing||For licensing information, refer to LEADTOOLS Runtime Licensing and LEADTOOLS Runtime Licensing FAQ|