Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Управление принтером (число прочтений - 13419 )
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Управление принтером
04. Августа 2011 :: 05:27
Печать  
Есть ли решение следующей задаче:
На принтер посылается пакет документов, некоторым из них нужно указать двухстороннюю печать, остальным одностороннюю. Т.е. есть ли расширенный аналог 1С Опции таблицы, но с возможностью задания двухсторонней печати.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #1 - 04. Августа 2011 :: 05:55
Печать  
есть.
Либо создать в системе 2 принтёра на 1 устройство, одному включить всегда дуплекс и печатать на эти принтёры,
либо, скармливать dat файлик с настройками печати принтёру перед печатью.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #2 - 04. Августа 2011 :: 06:36
Печать  
Дело в том, что разделить пакет нельзя. Т.е. печать нужно посылать строго на один принтер. А подробно можно про dat файл?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #3 - 04. Августа 2011 :: 07:11
Печать  
через rundll32 printui.dll считываешь настройки принтёра в файл , имеешь 2 dat файла - с дуплексом и без..
затем

ИмяПринтера="\\Вася\HP LaserJet 4350 Series PCL 5";
ФайлДуплекс=КаталогПользователя()+"Duplex.dat";
ФайлНеДуплекс=КаталогПользователя()+"NoDuplex.dat";
КомандаСистемы("rundll32 printui.dll,PrintUIEntry /Ss /n"""+ИмяПринтера+""" /a """+ФайлДуплекс+"""");
//далее печатаем с дуплексом

КомандаСистемы("rundll32 printui.dll,PrintUIEntry /Ss /n"""+ИмяПринтера+""" /a """+ФайлНеДуплекс+"""");
//далее печать без дуплекса...

Настройки принтёра помеешь так:
rundll32 printui.dll,PrintUIEntry /Ss /n "\\Вася\HP LaserJet 4350 Series PCL " /a "Duplex.dat"
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #4 - 04. Августа 2011 :: 07:13
Печать  
RuporAbsurda писал(а) 04. Августа 2011 :: 06:36:
Дело в том, что разделить пакет нельзя. Т.е. печать нужно посылать строго на один принтер. А подробно можно про dat файл?


Что значит нельзя ?
Да и какая разница, ну первые таблички ты отправишь на принтер
Вася с дуплексом, а остальные таблички на принтёр ВасяБезДуплекса, в котором дуплекс выключен.

А принтера в системе Вася и ВасяБезДуплекса - это один и тот-же физический принтер, т.е это одно устройство.

  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #5 - 04. Августа 2011 :: 07:24
Печать  
Я просто не понял, подумал, что предлагается разделить на два отдельных принтера.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #6 - 04. Августа 2011 :: 07:30
Печать  
я вот только не помню про ключи rundll32 printui.dll


есть /Ss и /Sr, одна из них пишет, другая восстанавливает из файлика с настройками..
лень проверять
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #7 - 04. Августа 2011 :: 08:10
Печать  
Посмотрел на technet, написано:Rundll32 printui.dll,PrintUIEntry
Назначение: Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Vista
А как же XP?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #8 - 04. Августа 2011 :: 08:14
Печать  
RuporAbsurda писал(а) 04. Августа 2011 :: 08:10:
Посмотрел на technet, написано:Rundll32 printui.dll,PrintUIEntry
Назначение: Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Vista
А как же XP?


ты не поверишь, работает.
Улыбка
Более того, эта команда появилась задолго до вышеперечисленных ОС
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #9 - 04. Августа 2011 :: 09:01
Печать  
Ну, тады ой! Будем экспериментировать.  Очень довольный Спасибо.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #10 - 04. Августа 2011 :: 09:26
Печать  
Непонятный трабл с явным указание принтера. Хотел сделать, чтобы сразу печаталось на принтер HP LaserJet 4200 PCL 6, нажимаю на печать и тишина.

o_Tabl.PageSetup(1,100,1,5,5,5,5,0,5,0,1,"\\Serv1\HP LaserJet 4200 PCL 6");
o_Tabl.Print(0);

Этот принтер не стоит по умолчанию, но не печатает вообще ни на какой.
А если имя принтера не задавать явно, то печатает на принтер по умолчанию.

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #11 - 04. Августа 2011 :: 10:07
Печать  

Перед этим задай уникальные опции печати.

http://www.mista.ru/articles1c/hare/article.53.html
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #12 - 04. Августа 2011 :: 11:13
Печать  
Этот способ не помог. Все равно не печатает.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #13 - 04. Августа 2011 :: 11:22
Печать  
А кстати, можно ли отменить вывод DOS окна при запуске КомандаСистемы?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #14 - 04. Августа 2011 :: 11:23
Печать  
задай короткое имя принтёру.
Проверь, есть ли к нему доступ.
Прибей ветку о мокселе в реестре.

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #15 - 04. Августа 2011 :: 11:24
Печать  
RuporAbsurda писал(а) 04. Августа 2011 :: 11:22:
А кстати, можно ли отменить вывод DOS окна при запуске КомандаСистемы?

да..запускать через start
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #16 - 04. Августа 2011 :: 11:32
Печать  
Не понял через start это как? В смысле Пуск-Выполнить?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #17 - 04. Августа 2011 :: 11:47
Печать  
нет, это команда для запуска.

ЗЫ: можно и через WSH запустить..
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #18 - 04. Августа 2011 :: 12:04
Печать  
Провел эксперимент, если запускать так:
КомандаСистемы( "start "+КомманднаяСтрока);
то при повторной записи одного и того же dat файла вылетает ошибка. Без команды start этого не происходит.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #19 - 04. Августа 2011 :: 12:39
Печать  
Через WSH быстрее всего и без вывода dos окна. Осталось решить вопрос с печатью.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #20 - 04. Августа 2011 :: 13:00
Печать  
Это печатает у тебя ?
  

__________003.ert ( 396 KB | Загрузки )
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #21 - 04. Августа 2011 :: 13:19
Печать  
Нет только на один принтер.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #22 - 04. Августа 2011 :: 13:27
Печать  
странно, у меня печатает на любые 2 принтёра..
ЗЫ: принтеры то хоть разные выбирал из списка ?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #23 - 04. Августа 2011 :: 13:35
Печать  
Попробуй еще в настройках дуплексного принтера отключить использование очереди печати
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #24 - 05. Августа 2011 :: 05:21
Печать  
Естественно разные.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #25 - 05. Августа 2011 :: 05:24
Печать  
Имена короткие пробовал принтерам задавать ?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Управление принтером
Ответ #26 - 05. Августа 2011 :: 06:53
Печать  
RuporAbsurda писал(а) 04. Августа 2011 :: 09:26:
Непонятный трабл с явным указание принтера. Хотел сделать, чтобы сразу печаталось на принтер HP LaserJet 4200 PCL 6, нажимаю на печать и тишина.

o_Tabl.PageSetup(1,100,1,5,5,5,5,0,5,0,1,"\\Serv1\HP LaserJet 4200 PCL 6");
o_Tabl.Print(0);

Этот принтер не стоит по умолчанию, но не печатает вообще ни на какой.
А если имя принтера не задавать явно, то печатает на принтер по умолчанию.



имена принтеров должны быть локальными и без пробелов и желательно покороче
  
Наверх
wwwICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Управление принтером
Ответ #27 - 05. Августа 2011 :: 07:01
Печать  
2 Eprst
не подскажешь как задать очередность печати на принтере?
конкретней есть список картинок (качественных удостоверений), уходят на принтер очень быстро, примерно 20 за секунду и в переделах этой секунды печатются как хотят
  
Наверх
wwwICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #28 - 05. Августа 2011 :: 07:18
Печать  
смотреть в настройках самого принтёра.. с очередью там печатать или прямо на принтёр.
В одном из этих случаев будет быстро печатать (с использованием очереди быстрее текст, напрямую - pdf, к примеру)
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #29 - 05. Августа 2011 :: 11:11
Печать  
Печать я поборол. теперь следующий трабл.
1. Меняем настройки на дуплекс печать
2. Если написано Таб.Печать(1) - двусторонняя печать идет
3. Если написано Таб.Печать(0) - двусторонняя печать НЕ идет.
Печаль
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #30 - 05. Августа 2011 :: 12:16
Печать  
Меняешь где ?
В самом принтёре явно задаешь, или dat файлик кормишь ?
+ очередь печати пробовал отключать в свойствах принтера ?
+ есть еще фокус Таб.Показать(,-1) перед печатью.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #31 - 05. Августа 2011 :: 13:12
Печать  
Меняю dat файлом, фокус с Таб.Показать(,-1)  использовал, не помогло
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #32 - 05. Августа 2011 :: 13:26
Печать  
А ежели руками выставить дуплекс в настройке принтёра, потом Таб.Напечатать(0) работает ?
Очередь пробовал отключать в свойствах принтёра ?
Принтёр кстати, какой ?
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #33 - 09. Августа 2011 :: 05:09
Печать  
руками пробовал не работает. Принтер HP4200.
А что значит отключить очередь? Печатать прямо на принтер.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #34 - 09. Августа 2011 :: 05:38
Печать  
RuporAbsurda писал(а) 09. Августа 2011 :: 05:09:
А что значит отключить очередь? Печатать прямо на принтер.


Да.
  
Наверх
 
IP записан
 
alexnik
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 4
Зарегистрирован: 28. Августа 2008
Re: Управление принтером
Ответ #35 - 10. Августа 2011 :: 10:56
Печать  
RuporAbsurda писал(а) 05. Августа 2011 :: 11:11:
Печать я поборол. теперь следующий трабл.
1. Меняем настройки на дуплекс печать
2. Если написано Таб.Печать(1) - двусторонняя печать идет
3. Если написано Таб.Печать(0) - двусторонняя печать НЕ идет.

Какое сейчас полное имя принтера, на который хочешь напечатать?

Я когда делал дуплексную печать, всплыло ограничение на длину имени принтера - 31 символ.
Если имя длиннее, то не происходит выбора принтера и задание на печать уходит в никуда. При этом не играет роли сетевой это принтер или локальный.
Если имя принтера будет заканчиваться на "\" (даже просто состоять из одного символа "\"), то печать будет выполняться на  принтер по умолчанию (или последний выбранный принтер, сейчас точно не помню).

Если вызываешь Таб.Напечатать(1), то открывается диалог печати, и выбор принтера обязательно происходит (если имя принтера длиннее 31 символа, то вместо указанного принтера, выбирается принтер по умолчанию).

Функцией Таб.Напечатать(1) можно также проверить сработал выбор принтера или нет
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #36 - 11. Августа 2011 :: 11:29
Печать  
А считать имя с UNC путем или отдельно. Если c UNC, то больше 31 символа, если без, то меньше.
"\\As-servoffice\HP LaserJet 4200 PCL 6"
  
Наверх
 
IP записан
 
alexnik
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 4
Зарегистрирован: 28. Августа 2008
Re: Управление принтером
Ответ #37 - 12. Августа 2011 :: 08:07
Печать  
RuporAbsurda писал(а) 11. Августа 2011 :: 11:29:
А считать имя с UNC путем или отдельно. Если c UNC, то больше 31 символа, если без, то меньше.
"\\As-servoffice\HP LaserJet 4200 PCL 6"
Здесь важно именно полное имя принтера, т.е. для сетевых с UNC путем.
В данном случае, длина - 38 символов, надо укоротить имя принтера
« Последняя редакция: 12. Августа 2011 :: 10:12 - alexnik »  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #38 - 16. Августа 2011 :: 12:01
Печать  
Двухсторонняя печать кое-как заработала. Правда не стабильно. Но теперь 2 сторона выходит перевернутой на 180 градусов. Это то как победить?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Управление принтером
Ответ #39 - 16. Августа 2011 :: 12:12
Печать  
в настройках принтёра в окончательной обработке есть поворот и переплёт.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Управление принтером
Ответ #40 - 16. Августа 2011 :: 13:08
Печать  
Спасибо. Нужно было поставить переплет сверху.
  
Наверх
 
IP записан
 
Rinchin
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 08. Декабря 2009
Re: Управление принтером
Ответ #41 - 07. Сентября 2011 :: 01:21
Печать  
Нашел в просторах инета
http://www.vbforums.com/showthread.php?t=564553
что интересно работает по крайней мере у меня
дуплекс включает и выключает
но правда не на всех принтерах
из 10 апаратов только на 1 не может (МФУ киосера) думаю может из за того что в нем сканер

кстати еще есть платная dll-ка AxInsidePrinter.dll
может кроме управления принтером еще и список принтеров и еще что то делать.. не разбирался
  
Наверх
 
IP записан
 
ssv02
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 19
Зарегистрирован: 16. Апреля 2010
Re: Управление принтером
Ответ #42 - 09. Сентября 2011 :: 12:34
Печать  
Мы у себя долго бились над такой проблемой, но в конце остановились на одном "безобразно тупом" методе.

На принтере всегда включен дуплекс
При печати пачки документов все они формируются в один файл (Таблицу 1С). При формировании таблицы считаются страницы. В случае необходимости вставляются пустые страницы:
1. Если док односторонний, то между каждыми страницами вставляем пустую. Плюс в конце вставляем пустую
2. Если док двусторонний и кол-во стр. нечетное, то в конце вставляем пустую

Таким образом вся пачка документов превращается в один документ с необходимыми разрывами в виде пустых страниц. Весь документ печатается в дуплексе и соответственно когда надо вторая сторна просто прогоняется как пустая страница.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать