I was looking at the examples in "PC_PRINTER_SET_DEFAULT". Example #2 uses the routine to brows for a printer. It then uses the routine to set the printer as the default. It then uses "PC_PRINT_FILE" to print a file to the printer. This is just what I need. The problem is that the example and the routine definition do not explain where the "Printer Browser Handle" comes from. The example uses a linkage section variable. Could you let me know where this handle comes from and how to use it? What I want to do is to let the user select a printer and then print two files to this printer. Concatenating the two files before printing is NOT an option.
I was looking at the examples in "PC_PRINTER_SET_DEFAULT". Example #2 uses the routine to brows for a printer. It then uses the routine to set the printer as the default. It then uses "PC_PRINT_FILE" to print a file to the printer. This is just what I need. The problem is that the example and the routine definition do not explain where the "Printer Browser Handle" comes from. The example uses a linkage section variable. Could you let me know where this handle comes from and how to use it? What I want to do is to let the user select a printer and then print two files to this printer. Concatenating the two files before printing is NOT an option.
Hi Jerry,
Sorry, the example is misleading.
The browser handle is actually referring to the window handle that you would like to be the parent of the print selection dialog.
You can set this to 0 is you want the current window to be the parent.
I did a test here using the example in the docs and although it works fine from a native code project it does not appear to be working correctly from a managed code project.
I will create an rpi for this.
As a workaround in a managed code project you can use the PrintDialog class to get the printer name and use it instead of the browse function.
Example:
declare myprintdialog as type PrintDialog = new PrintDialog
if myprintdialog::ShowDialog = type DialogResult::OK
move myprintDialog::PrinterSettings::PrinterName to body of ourprinter
move myprintDialog::PrinterSettings::PrinterName::Length to len of ourprinter
end-if
move SET-DEFAULT-PRINTER to option of default-info
call "PC_PRINTER_SET_DEFAULT" using
by value option of default-info
by reference ourprinter of default-info
returning Printer-RetCode
end-call
if Printer-RetCode not equal zero
display "Unable to set a default printer"
display " Retcode = " Printer-RetCode
stop run
end-if
move "c:\\temp\\mytest.txt" to body of filename
move 18 to len of filename
move "My test" to body of document
move 7 to len of document
move USE-PROGRESS-DIALOG to document-flags
move zero to window-handle
call "PC_PRINT_FILE" using by reference filename
by reference document
by value document-flags
by value window-handle
returning Printer-RetCode
end-call
if Printer-RetCode not equal zero
display "PC_PRINT_FILE failed.. " Printer-RetCode
else
display "PC_PRINT_FILE: OK"
end-if
goback.
I was looking at the examples in "PC_PRINTER_SET_DEFAULT". Example #2 uses the routine to brows for a printer. It then uses the routine to set the printer as the default. It then uses "PC_PRINT_FILE" to print a file to the printer. This is just what I need. The problem is that the example and the routine definition do not explain where the "Printer Browser Handle" comes from. The example uses a linkage section variable. Could you let me know where this handle comes from and how to use it? What I want to do is to let the user select a printer and then print two files to this printer. Concatenating the two files before printing is NOT an option.
Hi Jerry. Apologies for the problems caused by the documentation for this routine not being as clear as it could be. We will look to provide some clearer descriptions for the parameters for these calls.
Thanks
Sign up
Already have an account? Login
Welcome to the Rocket Forum!
Please log in or register:
Employee Login | Registration Member Login | RegistrationEnter your E-mail address. We'll send you an e-mail with instructions to reset your password.