Андрей Попов (Daddy) июнь 2002 Понадобилось мне тут организовать печать разных таблиц из одного
документа одновременно на два разных принтера. И оказалось, что это не так просто,
как написано в красно-жёлтых книжках.
Просто взять и указать имя принтера в параметре метода ПараметрыСтраницы()
не удавалось. Точнее, указать-то можно, но толку от этого не будет.
Использование метода Опции() тоже ничего вразумительного (с первого
раза) не дало.
Печать шла только на один из принтеров, хоть тресни. Пришлось заняться экспериментами.
В результате выяснилось, что метод ПараметрыСтраницы() воздействует
только на последнюю объявленную опцию печати.
Ну и вот пример кода, позволяющего разделить печать по разным принтерам:
Таб1=СоздатьОбъект("Таблица");
Таб1.ИсходнаяТаблица("Таблица1");
Таб1.Вывести();
Таб2=СоздатьОбъект("Таблица");
Таб2.ИсходнаяТаблица("Таблица2");
Таб2.Вывести();
Таб1.Опции(,,,,"Опции1");
Таб1.ПараметрыСтраницы(,,,,,,,,,,,"\\server\printer");
Таб2.Опции(,,,,"Опции2");
Таб2.ПараметрыСтраницы(,,,,,,,,,,,"\\server_2\printer");
Таб1.Напечатать();
Таб2.Напечатать();
|
Вот таким образом всё работает. Эксперимент великая сила.. ;-)
Примечание редактора
Вот уж воистину. Страшно вспомнить, сколько крови в своё время у меня выпила
задача паралелльной печати потока документов на три принтера
Сколько драйверов
было переставлено, сколько нехороших слов было выпущено в воздух. А до такого простого
решения, как попробовать по-всякому переставить местами строки кода, я тогда так и не
додумался. Век живи век учись, с V7 иначе нельзя
;-)
|