#include "Ltprinter.h"
L_LTPRINTER_API L_INT L_PrnGetRemoteData(pszPrinterName, nJobId, pJobData)
Obtains the remote data attached to the print Job ID.
Character string that contains the printer's name.
ID of the job to retrieve remote data.
Pointer to a PRNJOBDATA structure to be updated with the remote data.
| Value | Meaning |
|---|---|
| SUCCESS | The function was successful. |
| < 1 | An error occurred. Refer to Return Codes. |
The L_PrnGetRemoteData function will obtain the pJobData structure data that was sent from the client machine printer driver, after the callback function L_PrnClntPrintJob was faired at the job is being printed.
Required DLLs and Libraries
Win32, x64.
/* Job Callback */L_INT EXT_CALLBACK OnNetworkJobInfoProc(L_WCHAR * pszPrinter,DWORD dwJobID,DWORD dwFlags,L_VOID * pData){UNREFERENCED_PARAMETER(pData);USES_CONVERSION;L_WCHAR szResult[ 250 ];wsprintfW( szResult, L"Job ID: %d.\nOn printer: ", dwJobID );lstrcatW( szResult, pszPrinter );switch( dwFlags ){case PRN_JOB_START:PRNJOBDATA jobData;MessageBoxW( NULL, szResult, L"Starting", MB_OK );//Read the remote data sent by the client machine#if defined(FOR_UNICODE)L_PrnGetRemoteData(pszPrinter, dwJobID, &jobData);#elseL_PrnGetRemoteData(W2A(pszPrinter), dwJobID, &jobData);#endifif(&jobData == NULL)return 0;break;case PRN_JOB_END:MessageBoxW( NULL, szResult, L"Ending", MB_OK );break;default:{L_TCHAR szPrinter[_MAX_PATH];memset(szPrinter, 0, sizeof(szPrinter));#if defined(FOR_UNICODE)wcscpy_s(szPrinter, pszPrinter);#elsesize_t num = 0;wcstombs_s(&num, szPrinter, pszPrinter, _MAX_PATH);#endif // #if !defined(FOR_UNICODE)int nBytes = 0, nElements = 0;TCHAR * pszString = NULL;L_INT nRet = L_PrnGetEmbeddedFonts(TEXT("C:\\Path to font folder\\"), dwJobID, pszString, &nBytes, &nElements);if (nRet == TRUE){pszString = (PTCHAR) malloc(nBytes);nRet = L_PrnGetEmbeddedFonts(TEXT("C:\\Path to font folder\\"), dwJobID, pszString, &nBytes, &nElements);for (int i = 0 ; i < nElements ; i++){TCHAR * strFont = &pszString[MAX_PATH * i];MessageBox(NULL, strFont, TEXT("Font Received"), 0);}free(pszString);}L_PrnCancelPrintedJob(szPrinter, dwJobID);}}return 1;}L_VOID NetworkPrinterExample( ){int nRet = L_PrnRegisterJobCallback(TEXT("TEST LEADTOOLS Printer"),OnNetworkJobInfoProc,NULL);// Enable network printingL_PrnSetEnableNetworkPrinting(TEXT("TEST LEADTOOLS Printer"), TRUE);L_BOOL bEnableNetwork = FALSE;// Check if network printing is enabledL_PrnIsNetworkPrintingEnabled(TEXT("TEST LEADTOOLS Printer"), &bEnableNetwork);if(!bEnableNetwork)return;L_CHAR *pCharData = "Network Printer Initial Data\0";L_LONG nInitialDataLenght = (L_LONG)strlen(pCharData);// Set Initial Network DataL_PrnSetNetworkInitialData(TEXT("TEST LEADTOOLS Printer"), (L_UCHAR*)pCharData, nInitialDataLenght);HGLOBAL hGlobal = NULL;L_LONG nGlobalDataSize;// Get Initial Network DataL_PrnGetNetworkInitialData(TEXT("TEST LEADTOOLS Printer"), &hGlobal, &nGlobalDataSize);if( nGlobalDataSize == nInitialDataLenght){//Data set shoud be equal to data returnedreturn;}if (nRet == SUCCESS){L_PrnUnRegisterJobCallback(TEXT("TEST LEADTOOLS Printer")) ;}}