Forum

Пожалуйста or Регистрация для создания сообщений и тем.

Скрипт на печать формата DOCX

Всем привет Господа , есть скрипт который печатает ворд файл из папки, но печатает только формат 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
'=============================================================================

Скопировано