Начиная с версии 3.00 O&K Print Router поддерживает выполнение пользовательских сценариев ускорения печати документов и распределения нагрузки на принтеры и принт-сервер. В качестве языка сценариев используется Chaiscript. Более подробную информацию о языке программирования Chaiscript можно найти на официальном веб-сайте - ChaiScript.
При печати документа на принтер O&K Print Router, сначала выполняются правила печати и перенаправления документов, заданные в настройках программы "Redirect". После обработки этих правил выполняется пользовательский скрипт печати (если задан) "Custom Script":
Для использования в скриптах доступны следующие функции:
Print("Имя принтера", ЧислоКопий)
- Печать текущего документа на одном принтере с заданным числом копий.PrintMultiply(СписокПринтеров, ЧислоКопий)
- Печать текущего документа на ВСЕХ принтерах из списка с заданным числом копий.PrintBalanced(СписокПринтеров, ЧислоКопий)
- Печать текущего документа на ОДНОМ, НАИБОЛЕЕ ДОСТУПНОМ принтере из списка с заданным числом копий.PrintPages(СписокПринтеров, РазмерБумаги, Цвет, ЧислоКопий, РежимПечати)
- Печать отделных страниц документа на ВСЕХ принтерах из списка с заданным числом копий.Для каждого задания печати доступна следующая информация о печатаемом документе:
Для задания пользовательских правил печати необходимо набрать или вставить текст скрипта на вкладке "Custom Script" настроек программы и сохранить скрипт печати. Используя кнопку "Test", можно проверить правильности синтаксиса скрипта. В режиме тестирования печать на принтере не производится.
var printers = VectorOfString() // Объявляем переменную для списка принтеров if (PaperSize == "A4") // Если размер документа "А4" { // Добавляем принтеры в список printers.push_back("HP LaserJet 9000 PCL6") printers.push_back("Microsoft XPS Document Writer") // Печатаем документ на ОДНОМ, НАИБОЛЕЕ ДОСТУПНОМ принтере из списка с числом копий 1 PrintBalanced(printers, 1) } else // Если размер документа НЕ "А4" { // Печатаем документ на одном принтере с числом копий 1 Print("Microsoft XPS Document Writer", 1) }
var printers = VectorOfString() // Объявляем переменную для списка принтеров if (Color == 1) // Если документ печатается в цвете { // Добавляем принтеры в список printers.push_back("HP LaserJet 9000 PCL6") printers.push_back("Microsoft XPS Document Writer") // Печатаем документ на ВСЕХ принтерах из списка с числом копий 1 PrintMultiply(printers, 1) } else { // Печатаем документ на одном принтере с числом копий 1 Print("Microsoft XPS Document Writer", 1) }
if (Copies > 1) // Если число копий документа больше 1 { var copies1 = Copies * 0.2 // вычисляем 20% от общего числа копий Print("HP LaserJet 9000 PCL6", copies1) // вычисляем 30% от общего числа копий var copies2 = Copies * 0.3 // вычисляем 30% от общего числа копий Print("Brother DCP-7070DW Printer", copies2) // печатаем на втором принтере 30% копий var copies3 = Copies - copies1 - copies2 // вычисляем оставшееся число копий Print("Xerox WorkCentre Pro 275", copies3) // печатаем остальные копии на третьем принтере } else { Print("Xerox WorkCentre Pro 275", Copies) // если число копий 1 - печатаем документ на этом принтере }
var printersA4 = VectorOfString() // Variable for printers list printersA4.push_back("HP LaserJet 9000 PCL6") // Add printer to the list PrintPages(printersA4, "A4", 0, 1, 0) // будут напечатаны все страницы А4, независимо от их цвета, в 1-й копии var printersA3 = VectorOfString() // Variable for printers list printersA3.push_back("Xerox WorkCentre 6015N") // Add printer to the list PrintPages(printersA3, "A3", 1, 3, 0) // будут напечатаны все Ч/Б страницы А3, в 3-х копиях. PrintPages(printersA3, "A3", 2, 2, 0) // будут напечатаны все цветные страницы А3, в 2-х копиях. var printers = VectorOfString() // Variable for printers list printers.push_back("HP Designjet T795 44in HPGL2") // Add printer to the list PrintPages(printers, "", 0, 1, 0) // будут напечатаны все оставшиеся страницы в 1-й копии, независимо от размера бумаги и цвета.
if (DocName.find("sample text") == 0) // Имя документа начинается с "sample text" { Print("printer1", 1) // Печатаем документ на printer1 с 1 копией } if (DocName.find("sample text") != size_t(-1)) // Имя документа содержит "sample text" в любой части строки { Print("printer2", 1) // Печатаем документ на printer2 с 1 копией } if (DocName.find("sample text") == size_t(-1)) // Имя документа не содержит "sample text" { Print("printer3", 1) // Печатаем документ на printer3 с 1 копией }
This website uses cookies.