PDA

Показать полную графическую версию : [решено] Печать из командной строки.


valcher
04-08-2018, 01:37
Посоветуйте, как из командной строки напечатать выбранный лист MS World?

Iska
04-08-2018, 03:16
Скриптом. 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
@Iska, Спасибо!

ziku
11-08-2018, 13:43
Сильно заумно такие скипты писать. почитайте ТУТ (https://support.office.com/en-us/article/Command-line-switches-for-Microsoft-Office-products-079164CD-4EF5-4178-B235-441737DEB3A6) просто и сердито. А можно очень просто создать BAT фаил где печать пойдет по умолчанию. А не простынь скрипта.

Iska
11-08-2018, 17:55
ziku, ну, Вы же нам не просто ткнёте ссылкой, а популярно расскажете, как напечатать отдельную страницу документа из командной строки, не правда ли?!




© OSzone.net 2001-2012