Мониторинг папки и автоматическая печать файлов
Этот скрипт мониторит указанную папку на наличие новых файлов и автоматически отправляет их на печать, если они еще не были напечатаны. После успешной печати файл добавляется в базу данных, чтобы избежать повторной печати.
Установка
- Убедитесь, что на вашем компьютере установлен Python версии 3.x.
- Клонируйте этот репозиторий на свой компьютер.
- Установите зависимости, выполнив следующую команду в терминале:
pip install -r requirements.txt
Использование
-
Отредактируйте переменные
folder_to_watch
иdb_file
в файлеmonitor_folder.py
, чтобы указать папку для мониторинга и путь к файлу базы данных соответственно. -
Запустите скрипт, выполнив его команду в терминале:
-
Скрипт начнет мониторинг указанной папки. При обнаружении новых файлов он автоматически отправит их на печать, если они еще не были напечатаны.
Зависимости
Скрипт использует следующие библиотеки Python:
os
: Для работы с файловой системой.sqlite3
: Для работы с базой данных SQLite.time
: Для создания задержек между проверками папки и печатью.
Дополнительные сведения
- Для корректной работы скрипта убедитесь, что принтеры, указанные в переменных
printer1_name
иprinter2_name
в файлеprint_file.py
, доступны и готовы к печати.
Наверное, одна из самых частых проблем при работе на терминальном сервере — проблемы при печати. Заставить работать старые принтеры под новыми операционками без танцев с бубном получается крайне редко. При наличии чужих серверов без административных прав, подключение принтеров выглядит совсем печальным процессом. Отсюда родился костыль вида: pdf-принтер настроенный на сохранение в определенную папку и скрипт, который мониторит эту папку и если в ней появляется файл с расширением pdf, отправляет его на печать, а потом удаляет.
В качестве pdf-принтера ваш покорный слуга использовал PDFCreator v1.7.3 (скачать можно отсюда). Вообще, подойдет любой pdf-принтер, PDFCreator мне просто привычнее.
В PDFCreator заходим Принтер —> Настройки —> Автосохранение. Ставим галку использовать автосохранение и выбираем папку куда будем сохранять.
В скрипте указываем туже папку что и в настройках PDFCreator.
Текст VBS-скрипта:
Option Explicit : Dim objWord, objDoc, wssh, objFS, objShell, objPath, objFolder, objItem
Set wssh = CreateObject(«WScript.Shell»)
Set objFS = CreateObject(«Scripting.FileSystemObject»)
Set objPath = objFS.GetFolder(«d:\pdfprint\») ‘Папка, из которой файлы отправляются на печать
Do
PrintDelInFolder objPath
WScript.Sleep 1000 ‘ Частота проверки папки — 1 секунда
Loop
Sub PrintDelInFolder(objFolder)
For Each objItem In objFolder.Files
If StrComp(objFS.GetExtensionName(objItem.Name), «pdf», vbTextCompare) = 0 Then
With wssh
WScript.Sleep 1000
On Error Resume Next
dim f
f = Cstr(objItem.Path+».pdf»)
objFS.MoveFile objItem.Path, f
If err.number=0 then
Set objShell = CreateObject(«Shell.Application»)
objShell.ShellExecute f, «vbHide», «», «print», 0
set objShell = nothing
err.Clear
Do
WScript.Sleep 5000
objFS.DeleteFile f ,true
Loop While objFS.FileExists(f)
err.Clear
End If
On Error Goto 0
End With
End If
Next
End Sub
WScript.Quit 0
Скачать скрипт можно отсюда.
Ways to Print 15 Plus Files from a Folder At Once on Windows 10. – Windows 10 gives this facility to print more than 15 files from a folder at once. This limit, however, cannot exceed 15 because Windows is configured to open, edit and print maximum 15 files by default. Exceeding this limit may cause the system to heat because a lot of power is needed to print and take action on more than 15 files at a go. Moreover, Windows automatically will stop you if you ever try to exceed this limit. You can follow an alike article How to Print Multiple HTML Pages at a time in Windows 10.
This limit is not bound to every system and you can even print more than 15 files from a folder. All you need is a powerful configuration which you can trust upon. Simply, change the number of files that you want to print at once. The system would automatically stabilize its power consumption and thus the process execution.
Here is a list of steps that you need to follow to print 15 Plus files from a folder at once in Windows 10. So keep reading.
Important – Kindly import the registry key before making a change in it. This will be valuable after any trouble occurs on your computer after the registry key manipulation.
Way to Print 15 Plus Files from a Folder at Once in Windows 10
Step 1 – Press the pair of Windows and R as hotkeys to open Run dialog box. Type Regedt32.exe in the available space in the box and hit Enter.
Or,
Press Window key and once start menu appears type regedit. This will be automatically written in the search box, so press Enter. This will open the Registry editor on your screen.
Step 2 – Navigate to the following path:
HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Explorer
Step 3 – In the right pane, look for the DWORD Entry named MultipleInvokePromptMinimum. Right click it and check if the value is set to 15. (Create a new DWORD entry if it is not there in the list).
Step 4 – Double-click on the DWORD entry (named as discussed above) and enter 16 in the Value data section.
Step 5 – Set the base value to Decimal to change that 16 value to 22. Click OK.
Step 6 – Close the Registry Editor and Reboot the system to implement the changes you’ve done.
Once you’ve restarted the system, you’ll see that you can now print 15 plus files from a folder at once.
Note: Be sure to constantly give rest to your system by killing all the programs running in the background. Excessive loading or usage may heat up the system or crash your motherboard. So keep in mind the limit.
Hope this has helped you in achieving what you wanted to print the batch file in your printer. Let us know anymore working methods for the same (in case you know). Like and Share this article to help more in need.
Stay tuned for more.
Home / How to / Printing Automation: How to Auto Print PDF Files and other Documents
Without the right software tools, printing multiple PDF files and Microsoft Office documents can be a time-consuming and profit-reducing process in a corporate environment. fCoder has several auto printing software solutions that can save you time, cut expenses and optimize the typical office’s printing processes.
Auto Printing Multiple Documents At Once
With Print Conductor, you can auto print emails, office documents, engineering blueprints, and other file types on Windows automatically – without opening each document. The idea behind it is to print multiple documents with minimal effort. Users only need to drop files into Print Conductor’s main window, select a printer, and that’s it. PDF files, Microsoft Word documents, PowerPoint presentations, Excel worksheets, HTML and image files, Autodesk AutoCAD drawings, and more – all can be printed in hardly any time at all. The app’s usability is intuitive, and no special IT skills are required.
If needed, users can change the files’ printing order, change printing preferences, and click the Start Printing button. Print Conductor immediately starts a print job – and all files from a folder get printed automatically.
Users no longer need to follow tedious procedures: open a file, select a printer, check settings, print it; open the next one, print; and so on. Print Conductor makes routine tasks less time-consuming allowing to focus on what’s really important!
Download Print Conductor
Printing Files from a Folder Automatically
Print Conductor’s level of printing automation may not be enough in some cases. Allowing to choose a printer and change printing preferences, it still requires the user’s presence at the workplace. The one who prints many documents still keeps him/herself, the PC, the printer, and colleagues busy (while they’re waiting till the printer is available). Mistakes can occur, too – and it may result in high costs on paper, toner, and electricity.
FolderMill is another solution that can organize automatic printing seamlessly. It can make printing in the office less time-consuming and user-unattended. The idea behind FolderMill is to hide settings from the end-users to remove the «human factor» from the printing process. This eliminates the possibility of mistakes and ensures documents are printed as expected and immediately.
FolderMill is installed on a single computer, acting as a print server. To autoprint documents, office workers only copy their files to a network shared folder. As soon as new files appear, FolderMill watches a folder all files placed into the so-called «Hot Folder». All documents are processed based on pre-defined settings of a Hot Folder and general settings.
FolderMill can be configured to perform different and multiple actions for each «Hot Folder», such as:
- Filter incoming files by: filename, paper size, contents;
- Add image or text watermark;
- Convert to image (JPG, PNG, TIFF), XPS or PDF;
- Run custom application;
- Copy files to local or FTP folder;
- Rename output files using macros.
Each folder can be assigned with several actions for a specific task, for example, «Text Documents to MFP», «CAD files to plotter», «Business card printing», and so on. All a user needs to do is copy documents to the corresponding folder and pick up their printouts from the printer tray!
One of the unique features is the ability to print PDF and other files to one or multiple printers.
Download FolderMill
Automatic Printing Based on Scripts
2Printer is a command line tool for auto-printing PDF files, images, CAD drawings, and other documents. This product is excellent for software developers, system administrators, and tech experts familiar with the command line. With 2Printer as a printing core in workflow systems, companies can find even higher automation levels that tools like FolderMill provide.
One of its unique features is scheduled printing based on BAT, CMD, or other types of scripts. 2Printer can be configured to work via Windows Tasks Scheduler and print at night when electricity is cheaper. No more opportunities for errors and no more wasted time – all the documents can be auto-printed when electricity is least expensive!
Besides, 2Printer may be included in any software distribution kit and be used by software developers. It can be integrated into existing code or another software as a fast and reliable printing component.
Download 2Printer
Need support or advice from our developers? Please leave us a message, and we will get back to you shortly.
Get in touch with us
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
1 2010-04-13 15:21:35
- lemuriec
- Гость
Тема: VBS: Автоматическая печать из указанной папки с последующим удалением
Доброго времени суток.
К сожалению до программирования не дорос пока, но столкнулся с одной не большой проблемой. Мне необходимо автоматически распечатывать doc и pdf файлы из указанной папки. Програмка должна мониторить состояние папки, указанную мною, и как только файл попадает в папку она должна его распечатать а затем удалить из папки. Так называемая «Очередь печати»)). Облазил сеть ничего не нашел(. Если есть возможность помогите.
P. S. В VBScript’ах не разбираюсь. Подскажите как устанавливать скрипты? Или где об этом почитать.
Заранее благодарен, форумчанин-нуб):D
2 Ответ от Lucky 2010-04-13 17:31:07 (изменено: Lucky, 2010-04-14 09:27:28)
- Lucky
- Разработчик
- Неактивен
- Рейтинг : [0|0]
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
Привет! Скрипт распечатывет документы Microsoft Word (.doc) из указанной папки (в примере d:\doc\) с последующим их удалением. Сделал так, что скрипт будет каждый час спрашивать завершать ли свою работу… можете убрать это условие по вашему усмотрению.
lemuriec пишет:
В VBScript’ах не разбираюсь…
Надо будет скопировать код скрипта и сохранить его в любом текстовом редакторе в файл формата vbs (Печать.vbs к примеру).
Option Explicit : Dim objWord, objDoc, wssh, objFS, objPath, objFolder, objItem, ques
Const wdDoNotSaveChanges = 0
Const wdPromptToSaveChanges = -2
Const wdSaveChanges = -1
Set wssh = CreateObject("WScript.Shell")
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objPath = objFS.GetFolder("d:\doc\") 'Папка, из которой производится печать
Do
PrintDelInFolder objPath
WScript.Sleep 1000
If Minute(Time)=0 and Second(Time)<5 then 'условие проверки времени для вывода на экран вопроса о завершении своей работы
ques=wssh.Popup("Не желаете завершить работу скрипта автопечати документов?"&vbCrLf&"Следующий запрос будет через час...",, "Скрипт автопечати | Lucky edited", 36)
if ques=6 then WScript.Quit
WScript.Sleep 5000
End If
Loop
Sub PrintDelInFolder(objFolder)
For Each objItem In objFolder.Files
If StrComp(objFS.GetExtensionName(objItem.Name), "doc", vbTextCompare) = 0 Then
With WScript.CreateObject("Word.Application")
Set objDoc = .Documents.Open(objItem.Path, False, True, False)
objDoc.PrintOut False
.Quit
Set objDoc = Nothing
WScript.Sleep 500
objFS.DeleteFile objItem.Path ',true 'если надо удалять и доки с атрибутом "Только чтение" - уберите символ ' перед true
End With
End If
Next
End Sub
Set objWord = Nothing
WScript.Quit 0
Стремление — залог успеха
3 Ответ от lemuriec 2010-04-14 09:34:59
- lemuriec
- Гость
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
Спасибо большое за старания…но возникла какая то ошибка.
«Сервер сценариев Windows/
Сценарий: C:Doc and Settings\_\Рабочий стол\print_from.vbs
Строка 24
Символ 17
Ошибка: не верно указаны путь или имя документа.
Попробуйте выполнить следующие действия:
Убедитесь что путь введен правильно
Выберите команду «Открыть» в меню файл и выберите нужный файл из списка. (\\192.168.0.1\>1I0O\…\Print.doc)
Код 800А1499
Источник MS WORD»
Возможно ли это потому что папка из которой надо печатать висит на сервере??? Что делать?
Заранее спасибо)
4 Ответ от Lucky 2010-04-14 09:49:31 (изменено: Lucky, 2010-04-14 09:52:28)
- Lucky
- Разработчик
- Неактивен
- Рейтинг : [0|0]
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
lemuriec пишет:
Возможно ли это потому что папка из которой надо печатать висит на сервере???
Скорей всего так и есть. Проверял локально — работает.
Вы покажите как вводите адрес к папке на сервере
P.S: А вы уверены что у скрипта есть права на доступ к файлам сервера? И тем более на удаление файлов оттуда…
Стремление — залог успеха
5 Ответ от lemuriec 2010-04-14 09:51:15
- lemuriec
- Гость
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
Ребят я наверное наглею.. а можно туда добавить еще и Excel файлы?… Я забыл про них совсем(
Извиняюсь….заранее спасибо…
6 Ответ от lemuriec 2010-04-14 09:53:10
- lemuriec
- Гость
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
Да локально работает. Адрес следующий «\\Servermon\общая\ОТДЕЛ ЭКОНОМИЧЕСКОГО АНАЛИЗА И ПРОГНОЗИРОВАНИЯ\Ochered»
7 Ответ от lemuriec 2010-04-14 09:59:21
- lemuriec
- Гость
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
У скрипта не знаю. Но на сервере нет пароля. и я спокойно сам могу удалять файлы с сервера. Может в скрипте это надо где то прописать? Я извиняюсь… я в программировании мало что понимаю)) наверное для многих мои слова кажутся смешными)) и все таки как это решить?
8 Ответ от Lucky 2010-04-14 11:33:55 (изменено: Lucky, 2010-04-14 11:35:45)
- Lucky
- Разработчик
- Неактивен
- Рейтинг : [0|0]
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
lemuriec пишет:
Адрес следующий «\\Servermon\общая\ОТДЕЛ ЭКОНОМИЧЕСКОГО АНАЛИЗА И ПРОГНОЗИРОВАНИЯ\Ochered»
Странно, но у меня аналогичное работает… Полагаю у вас в компьютерах установлены Microsoft Office…
Вот подобие на Excel, остается соединить и отшлифовать…
Option Explicit : Dim objWord, objDoc, wssh, objFS, objPath, objFolder, objItem, ques
Const wdDoNotSaveChanges = 0
Const wdPromptToSaveChanges = -2
Const wdSaveChanges = -1
Set wssh = CreateObject("WScript.Shell")
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objPath = objFS.GetFolder("d:\doc\") 'Папка, из которой производится печать
Do
PrintDelInFolder objPath
WScript.Sleep 1000
If Minute(Time)=0 and Second(Time)<5 then 'условие проверки времени для вывода на экран вопроса о завершении своей работы
ques=wssh.Popup("Не желаете завершить работу скрипта автопечати документов?"&vbCrLf&"Следующий запрос будет через час...",, "Скрипт автопечати | Lucky edited", 36)
if ques=6 then WScript.Quit
WScript.Sleep 5000
End If
Loop
Sub PrintDelInFolder(objFolder)
For Each objItem In objFolder.Files
If StrComp(objFS.GetExtensionName(objItem.Name), "xls", vbTextCompare) = 0 Then
With WScript.CreateObject("Excel.Application")
Set objDoc = .Workbooks.Open(objItem.Path)
objDoc.PrintOut
.Quit
Set objDoc = Nothing
WScript.Sleep 500
objFS.DeleteFile objItem.Path ',true 'если надо удалять и доки с атрибутом "Только чтение" - уберите символ ' перед true
End With
End If
Next
End Sub
Set objWord = Nothing
WScript.Quit 0
Стремление — залог успеха
9 Ответ от lemuriec 2010-04-14 12:25:37
- lemuriec
- Гость
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
Спасибо Вам большое))
Единственное с сервера не возможно распечатать(… Но я кажется придумал решение этой проблемы)
Програмка будет копировать файлы с сервера на локалку, а оттуда уже будет работать Ваш скрипт))
Ан тут можно как то выражать благодарность участнику форума?)
10 Ответ от Lucky 2010-04-14 12:37:28 (изменено: Lucky, 2010-04-14 15:18:08)
- Lucky
- Разработчик
- Неактивен
- Рейтинг : [0|0]
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
Пожалуйста! Рад помочь…
lemuriec пишет:
… Но я кажется придумал решение этой проблемы)
Програмка будет копировать файлы с сервера на локалку, а оттуда уже будет работать Ваш скрипт))
Я догадался (увидел следующую вашу тему)
Стремление — залог успеха
11 Ответ от Sandril 2010-09-27 08:32:35
- Sandril
- Гость
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
Очень полезный скрипт, спасибо большое!!!!
А как избавиться от постоянно всплывающего окна с вопросом о прекращении работы скрипта. Хочу чтобы он работал постоянно или прекращал работу через 3 часа, но без диалога с оператором
12 Ответ от Lucky 2010-09-27 23:23:05
- Lucky
- Разработчик
- Неактивен
- Рейтинг : [0|0]
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
1)
Sandril пишет:
Очень полезный скрипт, спасибо большое!!!!
А как избавиться от постоянно всплывающего окна с вопросом о прекращении работы скрипта. Хочу чтобы он работал постоянно…
Просто уберите в скрипте участок кода:
If Minute(Time)=0 and Second(Time)<5 then 'условие проверки времени для вывода на экран вопроса о завершении своей работы
ques=wssh.Popup("Не желаете завершить работу скрипта автопечати документов?"&vbCrLf&"Следующий запрос будет через час...",, "Скрипт автопечати | Lucky edited", 36)
if ques=6 then WScript.Quit
WScript.Sleep 5000
End If
2)
Sandril пишет:
…или прекращал работу через 3 часа, но без диалога с оператором
пункт №1 плюс замените в скрипте Do на:
Dim t1
t1=timer
Do while (timer-t1)/3600 < 3
p.s: Не забудьте убрать на первой строке определение переменной ques
Стремление — залог успеха
13 Ответ от Sandril 2010-09-28 08:43:48
- Sandril
- Гость
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
Спасибо большое!!!!
Всё работает, все довольные
14 Ответ от msc_nv 2011-01-11 13:42:35 (изменено: msc_nv, 2011-01-11 13:43:33)
- msc_nv
- Гость
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
А как бы сделать чтобы программа не завершала работу? И что бы печатала, по две копии каждого файла?
15 Ответ от ChemistE 2011-11-18 04:28:35
- ChemistE
- Гость
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
Подскажите пожалуйста, если кто слышит
Как подредактировать этот скрипт автоматической печати для распечатывания PDF файлов?
16 Ответ от a_lobachev 2012-02-25 09:43:14
- a_lobachev
- Гость
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
а как переделать этот скрипт под pdf файлы
17 Ответ от alexii 2012-02-25 10:22:28
- alexii
- Разработчик
- Неактивен
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
Под печать PDF потребуются сторонние средства. Вы готовы к этому?
18 Ответ от Евген 2012-02-25 11:11:27
- Евген
- Разработчик
- Неактивен
- Рейтинг : [0|0]
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
Раньше adobereader с ключом /p печатал файлы, сейчас нет ?
Времени не хватает…
19 Ответ от alexii 2012-02-25 13:51:50
- alexii
- Разработчик
- Неактивен
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
Печатать-то, может и печатал, а вот отследить момент завершения печати не удавалось. То ли он не закрывался в конце.
Поищите, уже было.
20 Ответ от smaharbA 2012-02-25 14:04:05
- smaharbA
- Разработчик
- Неактивен
- Рейтинг : [0|0]
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
AcroReader работает с джабоскриптом в усерспейсе
Я конечно далек от мысли… (с)
21 Ответ от workonw 2013-05-15 15:35:46
- workonw
- Гость
Re: VBS: Автоматическая печать из указанной папки с последующим удалением
smaharbA пишет:
AcroReader работает с джабоскриптом в усерспейсе
Если не трудно, опишите пожалуйста подробнее, или укажите ссылку.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться