Собственные руки TM
Одновременная печать на разные принтеры

Андрей Попов (Daddy)   июнь 2002
Понадобилось мне тут организовать печать разных таблиц из одного документа одновременно на два разных принтера. И оказалось, что это не так просто, как написано в красно-жёлтых книжках.

Просто взять и указать имя принтера в параметре метода ПараметрыСтраницы() не удавалось. Точнее, указать-то можно, но толку от этого не будет.

Использование метода Опции() тоже ничего вразумительного (с первого раза) не дало.

Печать шла только на один из принтеров, хоть тресни. Пришлось заняться экспериментами.

В результате выяснилось, что метод ПараметрыСтраницы() воздействует только на последнюю объявленную опцию печати.

Ну и вот пример кода, позволяющего разделить печать по разным принтерам:

Таб1=СоздатьОбъект("Таблица");
Таб1.ИсходнаяТаблица("Таблица1");
Таб1.Вывести();

Таб2=СоздатьОбъект("Таблица");
Таб2.ИсходнаяТаблица("Таблица2");
Таб2.Вывести();

Таб1.Опции(,,,,"Опции1");
Таб1.ПараметрыСтраницы(,,,,,,,,,,,"\\server\printer");

Таб2.Опции(,,,,"Опции2");
Таб2.ПараметрыСтраницы(,,,,,,,,,,,"\\server_2\printer");

Таб1.Напечатать();
Таб2.Напечатать();

Вот таким образом всё работает. Эксперимент – великая сила.. ;-)


Примечание редактора

Вот уж воистину. Страшно вспомнить, сколько крови в своё время у меня выпила задача паралелльной печати потока документов на три принтера… Сколько драйверов было переставлено, сколько нехороших слов было выпущено в воздух. А до такого простого решения, как попробовать по-всякому переставить местами строки кода, я тогда так и не додумался. Век живи – век учись, с V7 иначе нельзя… ;-)


    << Список статей | Mista.ruВолшебный форум