Печать файлов из папки в PowerBuilder 12

#.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». Они никогда не работают через этот вызов.