Печать панелей (печать без вывода диалогового окна)

При использовании параметра командной строки -silentMode пользовательский интерфейс запускается в фоновом режиме без отображения на экране. Таким способом можно вывести на печать любую панель. Интерфейс пользователя открывается в фоновом режиме с помощью следующей командной строки (см. также CTRL-функцию printRootPanel() ):

PVSSS00ui -silentMode

ВНИМАНИЕ

Буферизация или последовательная обработка заданий на печать не обеспечиваются. Новое задание на печать будет игнорировано, если оно было создано в процессе обработки текущего задания на печать.

Атрибут _SilentPrint внутренней точки данных _Ui содержит статус текущего или последнего задания на печать.

СтатусЗначение
1Обработано успешно, в ожидании новых заданий
2Прервано пользователем
3Ожидание (например, обработки всех CTRL-сценариев)
4Ошибка (например, невозможно считать панель)

ПРИМЕЧАНИЕ

Печать заданий производится только после того, как все CTRL-сценарии выводимой на печать панели полностью завершены (например, были выведены на экран все сообщения).

В примере ниже представлены элементы точек данных, определяющие способ печати (кроме того, есть конфигурационная запись silentPrintWithBorder):

Элемент точки данных в узле точки данных _Ui_X.Print («X» означает номер интерфейса пользователя)Тип данныхФункция
.PrinterNameстрокаИмя принтера или файла.В фоновом режиме или без вывода диалогового окна печати; вывод на печать также можно направить в локальный файл. Поддерживаемые форматы: PDF (*.pdf) и Postscript (*.ps).

Синтаксис:»file:///path/file.pdf»;
 Примеры:Linux: «file:///tmp/file.pdf»;Windows: «file:///C:/Temp/file.ps»;
.Landscapebool (булевый)Ориентация. Книжная/альбомная
.Backgroundbool (булевый)Цвет фона. Off = в качестве фона при выводе панели на печать используется белый цвет
.Scalefloat (с плавающей точкой)коэффициент масштабирования
.FitToPagebool (булевый)Масштабирование по размеру страницы. Возможность масштабирования вне зависимости от принтера

Задание на печать запускается или отменяется путем установки при помощи функции dpSet() атрибутов внутренней точки данных интерфейса пользователя (точки данных _Ui для менеджера, работающего в фоновом режиме).

ПРИМЕР

В следующем примере демонстрируются печать панели в фоновом режиме и установка параметров принтера. Панель будет распечатана в альбомном формате с масштабированием по размеру страницы. Обратите внимание, что автоматические сообщения о печати в средстве просмотра журналов отображаться не будут (кроме DebugN() данной функции). Панель будет выведена на печать на принтер по умолчанию. Следует иметь в виду, что пользовательский интерфейс с номером 4 должен работать в фоновом режиме. В этой связи следует запустить интерфейс пользователя с номером 4 со следующим параметром:

-silentMode

main()

{

   dyn_string dynStringVar = makeDynString();

   int res;

   res = dpSet(«_Ui_4.RootPanelOrigOn.ModuleName», «module1»,     «_Ui_4.RootPanelOrigOn.FileName», «silentMode.pnl»,   «_Ui_4.RootPanelOrigOn.PanelName», «silentMode»,   «_Ui_4.RootPanelOrigOn.Parameter», dynStringVar,   «_Ui_4.Print.Landscape», TRUE,   «_Ui_4.Print.Background», FALSE,   «_Ui_4.Print.Scale», 0,   «_Ui_4.Print.FitToPage», TRUE);

   DebugN(«Function successful», res);

}

ПРИМЕР

В приведенном ниже примере демонстрируется отмена созданного выше задания на печать после его запуска. В данном случае панель silentMode не будет выведена на печать.

main()

{

   int Abbrc;

   Abbrc = dpSet(«_Ui_4.PanelOff.ModuleName», «module1»,   «_Ui_4.PanelOff.PanelName», «silentMode»);

   DebugN(«Cancel print job», Abbrc);

}

ПРИМЕЧАНИЕ

При фоновой печати график тренда не выводится, если отображаются условные обозначения графика тренда. В этой связи перед печатью следует скрыть условные обозначения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *