We have tried various things with no success yet. We are shelling out of a database application. However we cannot seem to print with the pdfprint utility when doing that. When I look at the message is says it cannot find the printer we are trying to print to. However if I shell out of cache and just call the pdfprint.exe with -listprinter option - it sees all the printers? How can this be? We've tried starting cache as local admin and running the pdfprint.exe as an admin etc. We cannot do the cmduser stuff as having passwords in files like that will violate PCI rules.
Is it possible to explain how the -listprinter option works and shows our Printername , but the -printer Printername option - gives the message cannot find Printername?
Also - even the -listbins option works. I can list out the various bins for the printer, but again cannot print to it?
Note these are network printers.
Any other help is appreciated
Please use IP address to instead of computer name to try again, for example,
Pdfprint.exe -printer "\\192.168.1.10\myprinter" C:\test.pdf
Can you work fine with IP address to the target printer?
The direct IP also does not work. Below is the output from a -debug option.
I need to understand what system calls you are making when trying to get the default printer and also SetDefaultPrinter. I'm working with the database company that we are calling out from to your utility. There is some sort of security issue blocking your utility from talking to the printers - although when I run the -listprinter option - your utility can see all the printers.
Note your utility works fine if I run it from the windows command prompt - it doesn't work if I shell out to a command prompt from within the database (Cache in this situation) and call the utility. So please advise as to what operations you are calling when the following debug outputs shows return code of zero for set default printer etc. What are you calling in WINSPOOL.DRV for that operation?
Output from debug run
Try to load 'WINSPOOL.DRV' file...
Load 'WINSPOOL.DRV' file OK.
Default printer is ''.
SetDefaultPrinter to 'jodi' printer, return code = 0.
Can't locate the "jodi" printer in this computer, please double check the printer name and to try again.
It seems your database user account hasn't permission to access to network printer, please refer to following articles to solve this problem,
please refer to more documents about PDF Print Command Line application from following web page,
Thanks, but I've already tried those options. So I need to know what type of system calls the utility is making when it tries to find and set the default printer. I attached a -debug output below - please tell me what the utility is trying to do behind the scenes so we can determine what the database vendor needs to do to allow us to access the features the utility is trying to access
PDFPrint Command Line application does call SetDefaultPrinter() API function to set special printer as default printer, if SetDefaultPrinter() function can't locate your specified printer, it will return FALSE.
You can also give the network access function to that special user account to try again, if that user account able to call SetDefaultPrinter() function properly, the pdfprint.exe will work fine too.