Take the following steps to create and run a program that uses the LEADTOOLS Network Virtual Printer Driver.
1. |
Start Visual Studio 2008. |
2. |
From the main menu, choose File->New->Project... |
3. |
In the New Project dialog box, choose Visual C++ in the Projects Types, and choose Win32 Project in the Templates. |
4. |
Type the project name as LEADTOOLS Printer Client Demo in the Project Name field. |
5. |
In the Location field, use the Browse button to navigate to the Examples subdirectory (such as C:\LEAD Technologies\LEADTOOLS 19\Examples\CDLL). Uncheck both Create directory for solution and Add to Source Control options. Click OK. |
6. |
Click Next> in the Win32 Project Wizard. |
7. |
Select DLL application type. Then click Finish. Three folders will be created, entitled: "Header Files", "Resource Files", and "Source Files". |
8. |
From the main menu, choose Project->Properties. |
9. |
In the Properties dialog box, choose Configuration Properties then select C/C++ then select Preprocessor. |
10. |
In right side set Preprocessor definitions property to use LTVXX_CONFIG then click OK. |
11. |
In Solution Explorer, right-click on the Header Files folder, open stdafx.h, and add the following to the end of the file: |
#include "..\..\..\include\ltPrinterClient.h"
12. |
open LEADTOOLS Printer Client Demo.cpp, and add the following functions. |
L_BOOL EXT_FUNCTION L_PrnClntStartup(const L_WCHAR *pszPrinterName, L_UCHAR * pbtInitialData, L_ULONG dwLenght, L_VOID ** ppUserData){//set any user defined data to ppUserDataTCHAR * szAdditionalMessage = TEXT("additional user data");*ppUserData = malloc(_tcslen(szAdditionalMessage) * sizeof(TCHAR));memset(*ppUserData,0, _tcslen(szAdditionalMessage) * sizeof(TCHAR));memcpy(*ppUserData, szAdditionalMessage, _tcslen(szAdditionalMessage) * sizeof(TCHAR));//Function will get called as printer job startsWCHAR szMessage[1024];wsprintfW(szMessage, TEXT("Job received from printer %s"), pszPrinterName);MessageBox(NULL, szMessage, TEXT("Printer Client Demo"), 0);return TRUE;}L_VOID EXT_FUNCTION L_PrnClntShutdown(const L_WCHAR *pszPrinterName, L_VOID * pUserData){//Function will get called when job finishesWCHAR szMessage[1024];wsprintfW(szMessage, TEXT("Job ended from printer %s"), pszPrinterName);MessageBox(NULL, szMessage, TEXT("Printer Client Demo"), 0);//free the allocated user datafree(pUserData);}L_BOOL EXT_FUNCTION L_PrnClntPrintJob(PRNJOBDATA* pPrintJobData, L_VOID * pUserData){//Function will get called when job is being printerWCHAR szMessage[1024];wsprintfW(szMessage, TEXT("Job name %s"), pPrintJobData->szPrintJobName);MessageBox(NULL, szMessage, TEXT("Printer Client Demo"), 0);//cast the user data to the appropriate formatTCHAR * szAdditionalMessage = (TCHAR*)pUserData;MessageBox(NULL, szAdditionalMessage, TEXT("User additional data"), 0);char *pszMessage = "Network Printer";pPrintJobData->hUserData = GlobalAlloc(GHND, strlen(pszMessage));PVOID pVoid = GlobalLock(pPrintJobData->hUserData);memcpy(pVoid, pszMessage, strlen(pszMessage));GlobalUnlock(pPrintJobData->hUserData);pPrintJobData->uUserDataSize = strlen(pszMessage);return TRUE;}
13. |
Right click on LEADTOOLS Printer Client Demo project in the Solution Explorer and select Add->New Item..., and choose Module - Definition file ( .def ), and name it PrinterClient.def, add the following to it: |
LIBRARYEXPORTSL_PrnClntStartup @1L_PrnClntShutdown @2L_PrnClntPrintJob @3
14. |
Compile and run the code to test it, now you need to connect the demo dll to a printer |
For more information, refer to:
LEADTOOLS Network Printer Client Installer Demo.
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
