Пожалуйста Авторизоваться or Регистрация для создания сообщений и тем.
Скрипт на печать формата DOCX
Удаленный пользователь
#1 · 10.08.2022, 08:47
Цитата: Удаленный пользователь от 10.08.2022, 08:47Всем привет Господа , есть скрипт который печатает ворд файл из папки, но печатает только формат doc.
Почта как-то криво сохраняет формат doc ибо постоянно нужно выбирать кодировку ( кириллица windows) дабы автоматическая печать не шла зюгами.
Подскажите пожалуйста можно ли реализовать печать из формата Docx??В гугле ничего подобного не нашел...
[spoiler title=""]
Option Explicit Dim strTargetFolder Dim strComputer Dim objSWbemServicesEx Dim objSWbemEventSource Dim objSWbemObjectEx_Event Dim objSWbemObjectEx_CIM_DataFile strTargetFolder = "" strComputer = "." Set objSWbemServicesEx = GetObject("WinMgmts:\\" & strComputer & "\Root\CIMV2") Set objSWbemEventSource = objSWbemServicesEx.ExecNotificationQuery( _ "SELECT * FROM __InstanceCreationEvent WITHIN 0.1 WHERE " & _ "TargetInstance ISA 'CIM_DirectoryContainsFile' AND " & _ "TargetInstance.GroupComponent = 'Win32_Directory.Name=""" & Replace(strTargetFolder, "\", "\\\\") & """'") WScript.Echo "МОНИТОРИНГ ПАПКИ + ПЕЧАТЬ ФАЙЛА [" & strTargetFolder & "]..." Do Set objSWbemObjectEx_Event = objSWbemEventSource.NextEvent Set objSWbemObjectEx_CIM_DataFile = objSWbemServicesEx.Get(objSWbemObjectEx_Event.TargetInstance.PartComponent) WScript.Echo Now() & " | | Письмо : [" & objSWbemObjectEx_CIM_DataFile.Name & "]" Select case UCase(objSWbemObjectEx_CIM_DataFile.Extension) Case "DOC" PrintByWord objSWbemObjectEx_CIM_DataFile.Name Case "XLS" PrintByExcel objSWbemObjectEx_CIM_DataFile.Name Case Else ' true to do End Select Loop WScript.Quit 0 '============================================================================= '============================================================================= Sub PrintByWord(strFileName) Const wdDoNotSaveChanges = 0 Dim objWord Dim objDoc Set objWord = WScript.CreateObject("Word.Application") 'WScript.Echo' Now() & " | | ПЕЧАТЬ ФАЙЛА : [" & strFileName & "]" With objWord Set objDoc = .Documents.Open(strFileName, False, True, False) objDoc.PrintOut True Do WScript.Sleep 500 Loop Until .BackgroundPrintingStatus = 0 Set objDoc = Nothing .Quit wdDoNotSaveChanges End With Set objWord = Nothing End Sub '=============================================================================
[/spoiler]
Всем привет Господа , есть скрипт который печатает ворд файл из папки, но печатает только формат doc.
Почта как-то криво сохраняет формат doc ибо постоянно нужно выбирать кодировку ( кириллица windows) дабы автоматическая печать не шла зюгами.
Подскажите пожалуйста можно ли реализовать печать из формата Docx??
В гугле ничего подобного не нашел...
Спойлер
Скопировано
Option Explicit
Dim strTargetFolder
Dim strComputer
Dim objSWbemServicesEx
Dim objSWbemEventSource
Dim objSWbemObjectEx_Event
Dim objSWbemObjectEx_CIM_DataFile
strTargetFolder = ""
strComputer = "."
Set objSWbemServicesEx = GetObject("WinMgmts:\\" & strComputer & "\Root\CIMV2")
Set objSWbemEventSource = objSWbemServicesEx.ExecNotificationQuery( _
"SELECT * FROM __InstanceCreationEvent WITHIN 0.1 WHERE " & _
"TargetInstance ISA 'CIM_DirectoryContainsFile' AND " & _
"TargetInstance.GroupComponent = 'Win32_Directory.Name=""" & Replace(strTargetFolder, "\", "\\\\") & """'")
WScript.Echo "МОНИТОРИНГ ПАПКИ + ПЕЧАТЬ ФАЙЛА [" & strTargetFolder & "]..."
Do
Set objSWbemObjectEx_Event = objSWbemEventSource.NextEvent
Set objSWbemObjectEx_CIM_DataFile = objSWbemServicesEx.Get(objSWbemObjectEx_Event.TargetInstance.PartComponent)
WScript.Echo Now() & " | | Письмо : [" & objSWbemObjectEx_CIM_DataFile.Name & "]"
Select case UCase(objSWbemObjectEx_CIM_DataFile.Extension)
Case "DOC"
PrintByWord objSWbemObjectEx_CIM_DataFile.Name
Case "XLS"
PrintByExcel objSWbemObjectEx_CIM_DataFile.Name
Case Else
' true to do
End Select
Loop
WScript.Quit 0
'=============================================================================
'=============================================================================
Sub PrintByWord(strFileName)
Const wdDoNotSaveChanges = 0
Dim objWord
Dim objDoc
Set objWord = WScript.CreateObject("Word.Application")
'WScript.Echo' Now() & " | | ПЕЧАТЬ ФАЙЛА : [" & strFileName & "]"
With objWord
Set objDoc = .Documents.Open(strFileName, False, True, False)
objDoc.PrintOut True
Do
WScript.Sleep 500
Loop Until .BackgroundPrintingStatus = 0
Set objDoc = Nothing
.Quit wdDoNotSaveChanges
End With
Set objWord = Nothing
End Sub
'=============================================================================
Скопировано
Голосуйте - палец вниз.0Голосуйте - палец вверх.0
Последний раз редактировалось 10.08.2022, 11:25 : Удаленный пользователь