При использовании параметра командной строки -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»; |
.Landscape | bool (булевый) | Ориентация. Книжная/альбомная |
.Background | bool (булевый) | Цвет фона. Off = в качестве фона при выводе панели на печать используется белый цвет |
.Scale | float (с плавающей точкой) | коэффициент масштабирования |
.FitToPage | bool (булевый) | Масштабирование по размеру страницы. Возможность масштабирования вне зависимости от принтера |
Задание на печать запускается или отменяется путем установки при помощи функции 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);
}
ПРИМЕЧАНИЕ
При фоновой печати график тренда не выводится, если отображаются условные обозначения графика тренда. В этой связи перед печатью следует скрыть условные обозначения.