Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   [решено] Печать из командной строки. (http://forum.oszone.net/showthread.php?t=336022)

valcher 04-08-2018 01:37 2824844

Печать из командной строки.
 
Посоветуйте, как из командной строки напечатать выбранный лист MS World?

Iska 04-08-2018 03:16 2824848

Скриптом. WSH или PowerShell.

Например, так (на WSH):
Скрытый текст
Код:

Option Explicit

Const wdPrintFromTo      = 3
Const wdDoNotSaveChanges = 0

Dim strSourceFile
Dim intPage


If WScript.Arguments.Named.Count = 2 Then
        If WScript.Arguments.Named.Exists("SourceFile") Then
                strSourceFile = WScript.Arguments.Named.Item("SourceFile")
               
                With WScript.CreateObject("Scripting.FileSystemObject")
                        If .FileExists(strSourceFile) Then
                                Select Case LCase(.GetExtensionName(strSourceFile))
                                        Case "doc", "docx", "docm"
                                                If WScript.Arguments.Named.Exists("Page") Then
                                                        If IsNumeric(WScript.Arguments.Named.Item("Page")) Then
                                                                intPage = WScript.Arguments.Named.Item("Page")
                                                               
                                                                With WScript.CreateObject("Word.Application")
                                                                        With .Documents.Open(strSourceFile, False, True, False)
                                                                                .PrintOut False,, wdPrintFromTo,, intPage, intPage
                                                                                .Close
                                                                        End With
                                                                       
                                                                        .Quit wdDoNotSaveChanges
                                                                End With
                                                        Else
                                                                ShowUsage "Argument <Page> [" & WScript.Arguments.Named.Exists("Page") & "] is not a numeric value."
                                                                WScript.Quit 4
                                                        End If
                                                Else
                                                        ShowUsage "Argument <Page> is missing."
                                                        WScript.Quit 4
                                                End If
                                        Case Else
                                                ShowUsage "Source file [" & strSourceFile & "] probably not an Microsoft Word document file."
                                                WScript.Quit 4
                                End Select
                        Else
                                ShowUsage "Can't find source file [" & strSourceFile & "]."
                                WScript.Quit 3
                        End If
                End With
        Else
                ShowUsage "Argument <SourceFile> is missing."
                WScript.Quit 2
        End If
Else
        ShowUsage ""
        WScript.Quit 1
End If

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

'=============================================================================
Sub ShowUsage(strComment)
        Dim strShowUsage
       
        strShowUsage = _
                "Usage:  wscript.exe """ & WScript.ScriptName & """ /SourceFile:<Source file> /Page:<Page number>" & vbCrLf & _
                "" & vbCrLf & _
                "Example: wscript.exe """ & WScript.ScriptName & """ /SourceFile:""c:\Users\User\Documents\My document.doc"" /Page:4"
       
        If Len(strComment) > 0 Then
                WScript.Echo strComment & vbCrLf & vbCrLf & strShowUsage
        Else
                WScript.Echo strShowUsage
        End If
End Sub
'=============================================================================


valcher 04-08-2018 08:54 2824852

@Iska, Спасибо!

ziku 11-08-2018 13:43 2825939

Сильно заумно такие скипты писать. почитайте ТУТ просто и сердито. А можно очень просто создать BAT фаил где печать пойдет по умолчанию. А не простынь скрипта.

Iska 11-08-2018 17:55 2825956

ziku, ну, Вы же нам не просто ткнёте ссылкой, а популярно расскажете, как напечатать отдельную страницу документа из командной строки, не правда ли?!


Время: 21:56.

Время: 21:56.
© OSzone.net 2001-