Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 19.12.2019
Сообщений: 35

Печать файла excel по маске на сетевой принтер

27.12.2019, 13:24. Показов 4205. Ответов 38

Студворк — интернет-сервис помощи студентам
Знающие люди, помогите написать скрипт:
Логика скрипта следующая:
Скрипт заглядывает в папку С:\tests и ищет там файлы excel, если он находит файл, то по маске определяет на какой сетевой принтер отправить его на печать, выставляется параметр печати - вписать в 1 лист и печатает его в кол-ве 3 копий . После этого файл из папки удаляется.

Есть такой рабочий скрипт на powershell, но там не могу выставить кол-во копий.. В интернете находил похожие скрипты, но они печатают на принтер по умолчанию, и по явному указанию названия файла.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.12.2019, 13:24
Ответы с готовыми решениями:

Печать на определенный сетевой принтер
Добрый день подскажите как реализовать, 1С 8.2 УТ 11,1 нужно что бы документ Расходная накладная, печаталась на сетевой принтер...

Печать отчета Access 97 на сетевой принтер
При печати достаточно плотного многостраничного отчета на сетевой LaserJet1100(Windows 2000 Server) после отправки около 260 страниц ...

Печать на старый сетевой принтер в Windows 7 x64, не имея 64-битных драйверов
Добрый день Поиск по форуму положительного ответа не дал Проблема такая: Контора купила новый комп в виндой 7 макс(х64). К...

38
0 / 0 / 0
Регистрация: 19.12.2019
Сообщений: 35
27.12.2019, 20:11  [ТС]
Студворк — интернет-сервис помощи студентам
можно мимо корзины
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
27.12.2019, 20:23
Так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Option Explicit
Const Copies = 3
Const Folder = "C:\tests"
 
Dim oExcel, oFSO, oItems, I, Printer
Set oExcel = CreateObject("Excel.Application")
Set oFSO   = CreateObject("Scripting.FileSystemObject")
Set oItems = CreateObject("Shell.Application").NameSpace(Folder).Items
oItems.Filter 8256, "*_*.xls;*_*.xlt;*_*.xlsx;*_*.xlsm;*_*.xltx;*_*.xltm"
For Each I In oItems
   If Left(I, 2) <> "~$" Then
      Select Case Split(I, "_")(0)
         Case 20263 Printer = "сетевой принтер 1"
         Case 20275 Printer = "сетевой принтер 2"
         Case 20287 Printer = "сетевой принтер 3"
         Case 20172 Printer = "сетевой принтер 4"
         Case 20033 Printer = "сетевой принтер 5"
         Case 00003 Printer = "сетевой принтер 6"
         Case 20140 Printer = "сетевой принтер 7"
         Case 20188 Printer = "сетевой принтер 8"
         Case 20025 Printer = "сетевой принтер 9"
         Case 20077 Printer = "сетевой принтер 10"
         Case 20075 Printer = "сетевой принтер 11"
         Case 00005 Printer = "сетевой принтер 12"
         Case 20078 Printer = "сетевой принтер 13"
         Case Else  Printer = ""
      End Select
      If Len(Printer) Then
         With oExcel.Workbooks.Open(I.Path,,1)
            With .Worksheets(1).PageSetup
               .Zoom = False
               .PaperSize = 9
               .FitToPagesTall = 1
               .FitToPagesWide = 1
            End With
            .Worksheets(1).PrintOut 1,,Copies,,Printer: .Close 0
         End With
         oFSO.DeleteFile I.Path, 1
      End If
   End If
Next
oExcel.Quit
Set oExcel = Nothing
Set oItems = Nothing
Set oFSO   = Nothing
0
0 / 0 / 0
Регистрация: 19.12.2019
Сообщений: 35
27.12.2019, 20:45  [ТС]
А удаляются именно напечатанные файлы или полностью очищается папка?

Добавлено через 6 минут
Походу только отпечатанные. Спасибо ещё раз Вам Огромное!
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
27.12.2019, 20:47
Как запрошено. В папке может быть много всяких файлов, в т. ч. экселевских, но не соответствующих номерных маскам. Зачем же их удалять?
Пожалста. )
0
0 / 0 / 0
Регистрация: 19.12.2019
Сообщений: 35
28.12.2019, 10:49  [ТС]
Добрый день! Столкнулся ещё с одной проблемой. Если убираю строку .PaperSize = 9 , то принтер печатает на другой лоток, видимо не понимает формат бумаги А4.
Миниатюры
Печать файла excel по маске на сетевой принтер  
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
28.12.2019, 13:18
В случае неуказания принтер, что естественно, будет печатать на лоток, выставленный по умолчанию.
Вы писали, что все принтеры принимают этот формат.
0
0 / 0 / 0
Регистрация: 19.12.2019
Сообщений: 35
28.12.2019, 16:25  [ТС]
А как понять принтеры "принимают этот формат" ? Все современные принтеры понимают формат А4. Кстати по умолчанию лоток выставлен правильно и настроен на формат А4. Я так понимаю скрипт пытается передать в драйвер принтера параметр "печатать в формате А4" но, видимо не может до него достучаться, а принтер, в свою очередь не может понять, в каком формате распечатать лист и отправляет его на другой лоток. А нет такого параметра, который жёстко прописывает с какого лотка печатать? или параметр который по другому прописывает формат А4?
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
28.12.2019, 17:51
Принимают, значит, не выставлены ограничения на печать (например, автоподгон датчиком по ограничителю). Впрочем, есть современные принтеры и меньших форматов.
Не факт, что лоток там выставлен правильно и является дефолтным. В объекте Excel в отличии от Word нет свойства установки лотка (без WinAPI тут ничего не сделать), поэтому придётся создавать принтер с настройками под нужный лоток и указывать уже его. Также сюда загляните.
Ещё вместо 9 можно 1 попробовать, но это будет не совсем то.
1
0 / 0 / 0
Регистрация: 19.12.2019
Сообщений: 35
30.12.2019, 15:22  [ТС]
Разобрался. Оказывается скрипт лезет в драйвер не сетевого принтера, а выставленного по умолчанию. У меня по умолчанию стояла zebra, а она как раз таки не умеет печатать А4, Поставил по умолчанию виртуальный принтер и всё заработало. А опрашивал он драйвер "принтера по умолчанию", потому что excel автоматом подтягивает "принтер по умолчанию".
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
30.12.2019, 15:28
Что-то не понял. Вы же имена принтеров задаёте в скрипте. Откуда тут "по умолчанию"?
Цитата Сообщение от alexandrkv Посмотреть сообщение
а она как раз таки не умеет печатать А4
Ну, вот, а писали
Цитата Сообщение от alexandrkv Посмотреть сообщение
Все современные принтеры понимают формат А4.
0
0 / 0 / 0
Регистрация: 19.12.2019
Сообщений: 35
30.12.2019, 15:35  [ТС]
ну я не брал в расчёт термо и фото принтеры, я же не на них отправлял на печать, а все те принтеры что участвуют в печати - полноценные принтеры печатающие А4.
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
30.12.2019, 16:49
Хотите сказать, что скрипт во всех случаях отправляет на печать не на указанные принтеры, а на дефолтный?
0
0 / 0 / 0
Регистрация: 19.12.2019
Сообщений: 35
30.12.2019, 17:07  [ТС]
Нет, не так. Он печатает на указанные принтеры, но если по умолчанию стоит принтер, "не понимающий" формат А4, то на остальные принтеры (которые указаны в скрипте), он не может выставить формат А4, поэтому выдаёт соответствующую ошибку и печатает на другой лоток (так как не понимает формат). А вот если поставить другой принтер по умолчанию (хоть виртуальный pdf), то всё отлично работает.
Логика получается следующая: Скрипт сначала опрашивает драйвер "принтера по умолчанию", и от результата зависит печать на других принтерах. Если скрипту удалось передать параметр "формат А4" то печатает всё хорошо.
P.S. это чисто моё мнение и может быть ошибочно. /но проверено на практике ) /
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
30.12.2019, 17:41
Давайте разделять понятия. Принтеры, указанные в скрипте, — это принтеры не по умолчанию, а целевые. На них скрипт и должен пытаться отправлять на печать. И если сбой, то выбирается другой лоток заданного принтера.

Можно, конечно, проверять исходный формат бумаги и игнорировать в случае не A4, но логично сделать именно так, как я писал выше.
0
0 / 0 / 0
Регистрация: 19.12.2019
Сообщений: 35
22.01.2020, 10:42  [ТС]
Добрый день! Скажите, а excel умеет печатать в тихом режиме? без взаимодействия с рабочим столом?
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
22.01.2020, 12:17
А как он взаимодействует с рабочим столом?
0
0 / 0 / 0
Регистрация: 19.12.2019
Сообщений: 35
22.01.2020, 12:46  [ТС]
Открывается само приложение excel - печатается файл - приложение закрывается. Возможно как то чтоб окно программы не запускалось? Так называемая тихая печать. Например если на pdf файле нажать правой кнопкой и нажать печать - он распечатается в тихом режиме, без открытия окна программы. Если так сделать с excel файлом то он сначала открывает приложение потом печатает.
Это необходимо чтобы работал планировщик с опцией "Выполнять вне зависимости от регистрации пользователя" на win server 2012.
0
7001 / 2885 / 1110
Регистрация: 06.06.2017
Сообщений: 9,810
22.01.2020, 13:06
oExcel.Visible = False седьмой строкой вставьте.

P.S.: Рабочий стол тут ни при чём.
1
0 / 0 / 0
Регистрация: 19.12.2019
Сообщений: 35
22.01.2020, 13:33  [ТС]
Это то что надо! Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.01.2020, 13:33

Двухсторонняя печать excel файла
Всем привет.Парни я снова со своей двухсторонней печатью файла. Я печатаю excel файл, но у меня не получается распечатать его с двух сторон...

Печать word-файла из Excel
Столкнулся вот с чем: Есть excel-файл, в нём в каждой строчке записан путь к word-файлу. Необходимо, вставая на строчку, печатать этот...

Генерация Excel файла и печать формы
Вот как-то так это все работает. При нажатии кнопок &lt;button class=&quot;btn btn-default&quot; type=&quot;button&quot;...

Печать отчёта Access по макросу файла Excel
Здравствуйте. Помогите, пожалуйста. Ну совсем я закопался в задачке. Предупреждаю, многие аспекты ещё в работе, просто нужен толчок в...

Печать Excel файла. Выбор принтера для печати
Добрый день. Подскажите пожалуйста, используя Ole сервер excel для печати: vVarApp.OlePropertyGet(&quot;WorkBooks&quot;,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru