Добрый день. У меня возникла следующая задача : нужно, чтобы в зависимости от отчета, печать происходила на определенном принтере. То есть вызывалось окно с настройками этого принтера. Может кто-нибудь знает, каким образом это можно реализовать?
Реализовать поставленную Вами задачу можно при помощи прописывания конкретного принтера в скрипте с использованием метода PrintOut(). Для ее реализации высылаю ниже пример подобного скрипта. Он реализовывает распечатку текста без показа окна с автоматическим выбором принтера (строка - название):
var word =new ActiveXObject("Word.Application");
word.ActivePrinter='\\\\poligon\\HP LaserJet 4250 PCL 6 on NE03:';//Название принтера
var WordDoc = word.Documents.Add('c:\\test.doc');
WordDoc.PrintOut();
Таким образом, используя метод PrintOut Вы сможете реализовать поставленную задачу. У этого метода есть достаточно большое количество аргументов, которые Вы также можете указать при распечатке. Думаю, названия этих аргументов очевидны и не требуют дополнительного комментария:
Спасибо за пример, но у меня отчет в FastReport. Пока я реализовала данную задачу след. образом:
1. Получаю объект Word.Application
2. Меняю принтер при помощи Application.ActivePrinter
3. После печати отчета возвращаю принтер по умолчанию
Но есть проблемы, например, у пользователя может не стоять пакет Офиса. Может кто-нить подскажет ActiveXObject из винды, у которого есть свойство ActivePrinter ну или что-нить подобное.