My company is looking for a solution for printing a SQL Server Reporting Services Report using a SSIS package that is coded in VB. This report creates 1 or more PDF files that are saved to a folder on our Network. I have put code in to then, using ShellExecute, send the PDF files to a printer using your PDFPrint.exe utility. The files print and they duplex which is what we need but it doesn’t print the number of copies that are requested. Everything else works correctly. I just have the trial version of you software that I downloaded today and if I can get the number of copies to work we would be interested in the product. We would run it on a server so that it would always be accessible when users run reports that require the reports to print automatically. I am currently running the product from my PC that has Windows XP but this is not where it would run if we purchased the product.
My ShellExecute code is : Result = ShellExecute(0, lpOperation, lpFile, lpParameters, lpDirectory, 1)
My lpOperation variable contains : lpOperation = "\\lt78\C$\TestPDF\pdfprint_cmd\pdfprint.exe"
My lpFile contains: \\wat-TS01\test\
My lpParameters contains: -printer "\\verypdf\lpcduple" -duplex 3 -copies NumCopy
My lpDirectory contains: ""
My NumCopy variable is filled from the prompt variable that comes from the screen when the user selects the report(s) they want to run and the number of copies they need to print.
As I stated above the reports are going to the printer and they are duplexing so your product works for that part. They just are not printing multiple copies when they are selected. I have played around with the syntax but still have not gotten it to work,
We tried a different utility but they had absolutely no documentation or examples to follow so we were never successful in getting theirs to work. Their support was awful as well so I went looking for another solution and found your product. It surprised me when it worked the first try after all the problems I had had with the other product which really pleased me. I just hope I can get the number of copies problem solved.
Please add "-setcopyto" parameter to try again, for example,
"\\lt78\C$\TestPDF\pdfprint_cmd\pdfprint.exe" -printer "\\verypdf\lpcduple" -duplex 3 -copies NumCopy -setcopyto C:\test.pdf
Can you work fine with -setcopyto parameter?
I tried your suggestion of the -setcopyto but it still doesn't print multiple copies. I thought maybe it wasn't picking up my variable for the number of copies so I tried hard coding the number of copies as -copies 3 but that also did not print multiple copies. Do you have any other suggestions? Maybe there is something in how ShellExecute works that is messing things up. Do you know of any other way to run command line code from a VB program?
Just for test purpose, please run following command line in CMD window by manual again,
"\\lt78\C$\TestPDF\pdfprint_cmd\pdfprint.exe" -printer "\\verypdf\lpcduple" -duplex 3 -copies 3 -setcopyto C:\test.pdf
Can you get 3 copies when you run above command line by manual in CMD window? Is this problem appear in your VB code only?
I did not get 3 copies when I ran the command with the -setcopyto parameter in the command but when I ran the command in the CMD window without the -setcopyto parameter I did get the proper number of copies. Since I couldn't get the -copies parameter to work I created a loop in my program and I could print the proper number of copies that way. I want this to run in the background without user intervention but I keep getting a message box asking me if I am sure that I trust and want to run this application. Do you know how to stop this message from coming up every time I send some through your application or does it go away when I register the application? Here is the message box I am talking about. ========================================
This warning message box will appear if you run an EXE from network path, you may copy pdfprint.exe and DLL files to local disk instead of run it from network path, this warning message box will disappear.