Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


А как такой вариант VBS?

Код: Выделить весь код
Option Explicit

Const ForReading         = 1

Dim objFSO
Dim objTS

Dim objWshShell

Dim objWord
Dim objDoc

Dim objExcel
Dim objWorkbook

Dim strListFileName
Dim strFileName


If WScript.Arguments.Count = 1 Then
    Set objFSO      = WScript.CreateObject("Scripting.FileSystemObject")
    Set objWshShell = WScript.CreateObject("WScript.Shell")
    
    strListFileName = WScript.Arguments.Item(0)
    
    'WScript.Echo strListFileName
    
    If objFSO.FileExists(strListFileName) Then
        Set objTS = objFSO.OpenTextFile(strListFileName, ForReading)
        
        Set objWord  = Nothing
        Set objExcel = Nothing
        
        Do Until objTS.AtEndOfStream
            strFileName = objTS.ReadLine()
            
            'WScript.Echo strFileName
            
            If objFSO.FileExists(strFileName) Then
                Select Case UCase(objFSO.GetExtensionName(strFileName))
                    Case "DOC"
                        PrintDOC strFileName
                    Case "XLS"
                        PrintXLS strFileName
                    Case "PDF"
                        PrintPDF strFileName
                    Case Else
                        ' Nothing to do
                End Select
            End If
        Loop
        
        If Not objWord Is Nothing Then
            objWord.Quit
            
            Set objWord = Nothing
        End If
        
        If Not objExcel Is Nothing Then
            objExcel.Quit
            
            Set objExcel = Nothing
        End Select
                
    objFSO.GetFile(strFileName).Name = objFSO.GetBaseName(strFileName) & "_printed." & objFSO.GetExtensionName(strFileName)
    End If
    Loop
 
    Set objWshShell = Nothing
    Set objFSO      = Nothing
End If

WScript.Quit 0
'=============================================================================

'=============================================================================
Sub PrintDOC(strFileName)
    Const wdDoNotSaveChanges = 0
    
    If objWord Is Nothing Then
        Set objWord = WScript.CreateObject("Word.Application")
    End If
    
    With objWord
        Set objDoc = .Documents.Open(strFileName, False, True, False)
        
        objDoc.PrintOut True
        
        Do
            WScript.Sleep 500
        Loop Until .BackgroundPrintingStatus = 0
        
        objDoc.Close wdDoNotSaveChanges
        
        Set objDoc = Nothing
    End With
End Sub
'=============================================================================

'=============================================================================
Sub PrintXLS(strFileName)
    If objExcel Is Nothing Then
        Set objExcel = WScript.CreateObject("Excel.Application")
    End If
    
    With objExcel
        .AskToUpdateLinks = False
        .Interactive      = False
        .DisplayAlerts    = False
        
        Set objWorkbook = .Workbooks.Open(strFileName, 0, True)
        
        objWorkbook.PrintOut
        objWorkbook.Close False
        
        Set objWorkbook = Nothing
    End With
End Sub
'=============================================================================

'=============================================================================
Sub PrintPDF(strFileName)
    objWshShell.Run """C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\AcroRd32.exe"" /h /p """ &  strFileName & """", 0, True
End Sub
'=============================================================================
Нашел на другом сайте.

Отправлено: 21:46, 01-03-2019 | #5