Print Job Watcher could not be started.

Skip Navigation LinksHome  /  Support  /  Forums  /  DynamicPDF PrintManager for .NET (v4)  /  Print Job Watcher could not be started.

DynamicPDF PrintManager for .NET (v4) Forum

Ever since these big spooler security issues have been coming out we are seeing more of this occurring on customer systems.
I believe the stations have had Microsoft's Spooler Security "Fix" pushed out to them and it is giving errors.

OS:

Windows 10

DLL:

File: DynamicPDF.Printing.NET4.x86.dll 
File description: "DynamicPDF PrintManager PE for .NET" 
Product version: 4.0.0 (Build 37436)

Code:

            ' Print using CETE Print Manager
            Using MyPrintJob As New Printing.PrintJob(sPrinterName, sFile)

               MyPrintJob.DocumentName = Path.GetFileNameWithoutExtension(sFile)
               MyPrintJob.PrintOptions.Color = False
               MyPrintJob.Print()

            End Using

Error:

cete.DynamicPDF.Printing.PrintingException: Print Job Watcher could not be stated.  Failed to create job change handles.  Error code:1936
Posted by a ceTe Software moderator
Hi,

We recommend updating to the latest version (v4.19). You can download latest product from NuGet (Package ID: ceTe.DynamicPDF.Printing.NET) or from our website here.

Error code 1936 indicates that, remote connections to the Print Spooler are blocked by a policy set on your machine. This is returned by the spooler and PrintManger is passing on the error it received from the spooler while creating the PrintJob.

Thanks,
ceTe Software Support Team

Tried 4.19.0.44079
Still getting this error.

ceTe.DynamicPDF.Printing.PrintingException: Print Job Watcher could not be started. Failed to create job change handles. Error code:1936
This happens only in case of network printers.
This happens only in case of network printers.
Posted by a ceTe Software moderator
Hi,

The error code 1936 indicates that Remote connections to the Print Spooler are blocked by a policy set on your machine. The print spooler is throwing this error while creating a PrintJob and our API is just passing on the error to client application.

Try configuring things on your end so the user account under which the application is running can access the specified print spooler.

Thanks,
ceTe Software Support Team
Wondering if this step can be bypassed in some way.
I see printing PDF to physical from Adobe and other apps working perfectly fine.

" user account under which the application is running can access the specified print spooler." - How do we check that ?

Note : We are just printing to a network printer and not directly to physical printer.
Posted by a ceTe Software moderator
Hi,

Try using the UNC path to access the specific network printer and see it works. Please refer to the documentation on printing to a network printer here.

We recommend installing the respective printer driver on the system where in application is running.

Also try getting the list of printers which your application can access dynamically using the GetLocalPrinters method and print the Default printer name. Use the correct printer's name and see it works for you.

Here is a code sample to get locally installed printers.

            Printer[] printerList = Printer.GetLocalPrinters();
            for (int i = 0; i < printerList.Length; i++)
            {
                string printerName = printerList[i].Name;
                Console.WriteLine("Installed Printers on the System:: " + printerName);
            }
            Console.Read();

You can Open the Devices and Printers on the system>>right click on the required printer driver/printer>>Printer Properties>>Security Tab >>Add a user and give all permissions.

Thanks,
ceTe Software Support Team

All times are US Eastern Standard time. The time now is 1:54 AM.