public PrintJobData RemoteData { get; }
The remote data wrapper class.
When printing a job from a remote machine, the data will be received in the server machine.
This property will return the data related to the current printed job.
This parameter will be available between JobStart and JobEnd for a given job.
This data has been sent from the client machine in the Leadtools.Printer.Client.IVirtualPrinterClient.PrintJob(Leadtools.Printer.Client.PrintJobData) method.
using Leadtools.Printer;
using Leadtools;
public void PrinterDriverNetworkExamples()
{
networkPrinter = new Printer("Test LEADTOOLS Printer");
// Set network printing enable
networkPrinter.EnableNetworkPrinting = true;
//Check network printing state
bool bNetworkEnabled = networkPrinter.EnableNetworkPrinting;
string strData = "Network Printer Initial Data";
//Set network initial data
SetNetworkData(strData);
//Get network initial data
string strRet = GetNetworkData();
if (strRet != strData)
return;
networkPrinter.JobEvent += new EventHandler<JobEventArgs>(printer_NetworkJobEvent);
}
void printer_NetworkJobEvent(object sender, JobEventArgs e)
{
string printerName = e.PrinterName;
int jobID = e.JobID;
if (e.JobEventState == EventState.JobStart)
{
//get the remote data sent from client
PrintJobData jobData = networkPrinter.RemoteData;
MessageBox.Show(string.Format("Job {0} was started with printer {1} from remote client", jobData.PrintJobName, jobData.VirtualPrinterName));
}
else if (e.JobEventState == EventState.JobEnd)
{
string[] arrFonts = networkPrinter.GetEmbeddedFonts("C:\\path to save file", e.JobID);
if (arrFonts != null && arrFonts.Length > 0)
{
MessageBox.Show(string.Format("{0} fonts received", arrFonts.Length));
}
MessageBox.Show(string.Format("Job {0} was ended with printer {1}", jobID, printerName));
}
else
{
networkPrinter.CancelPrintedJob(jobID);
}
}
Printer networkPrinter;
public void SetNetworkData(string strData)
{
byte[] bytes = Encoding.ASCII.GetBytes(strData);
//Set initial network data
networkPrinter.SetNetworkInitialData(bytes);
}
public string GetNetworkData()
{
byte[] bytes;
//Get initial network data
bytes = networkPrinter.GetNetworkInitialData();
return Encoding.ASCII.GetString(bytes);
}