#.net #powerbuilder
#.net #powerbuilder
Вопрос:
Я вообще не знаком с PowerBuilder. У нас проблема в нашем приложении, встроенном в PowerBuilder 12.
Приложение вызывает службу WCF, написанную на .Net. Служба возвращает путь к загруженному документу.
Есть ли способ распечатать документ, не открывая его в PowerBuilder? Как только служба вернет путь, мне нужно распечатать документ на принтере по умолчанию.
Любая помощь с благодарностью.
Спасибо
Ответ №1:
Вы можете подключить один из стандартных вызовов Windows API ShellExecute
Function long ShellExecute( long hwnd, string lpOperation, string lpFile, string
lpParameters, string lpDirectory, integer nShowCmd ) Library "shell32.dll"
alias for "ShellExecuteW"
Как только вы это сделаете, вы можете отправить свой путь / файл в эту функцию и указать ему печатать, например:
integer li_return_code
string ls_null
long ll_null
SetNull(ls_null)
SetNull(ll_null)
li_return_code = ShellExecute(ll_null, "print", "C:File.pdf", ls_null, ls_null, 0)
Код возврата может содержать несколько значений, но все, что больше 32, означает успех. Меньшие значения указывают на ошибку, описания которой вы можете получить в MSDN.
Одним из «предварительных требований», если хотите, является то, что вам нужно будет установить соответствующее приложение и зарегистрировать расширение файла, который вы передаете, чтобы это работало.
И, к вашему сведению, у нас, похоже, всегда возникают проблемы с файлами «.txt». Они никогда не работают через этот вызов.