Como posso imprimir vários tipos de arquivos no Windows a partir da linha de comando?

2

Eu configurei uma impressora PostScript chamada PSPinter para a porta FILE. Eu posso entrar em vários programas (MS Word, Excel, Acrobat, etc.) e imprimir o documento nesta impressora. Ele me pergunta por um nome de arquivo, e uma vez que ele imprime o arquivo, eu posso examiná-lo e confirmar que ele é um PostScript bem formado. Eu preciso fazer algo parecido, que nos bastidores invoca o programa certo e chama a função de impressão:

print /d:PSPRinter <inputFile.docx> <outputName.ps>

Minha pergunta é: como posso fazer isso programaticamente a partir da linha de comando do Windows? Eu também precisaria ser capaz de especificar o nome do arquivo de saída. Como alternativa, estou aberto a usar algo como CutePDF para produzir a saída (não importa se a saída dos arquivos é PDF ou (E) PS), mas esse método também teria que ser executado de forma programática a partir da linha de comando. / p>     

por cbannerjee 19.07.2013 / 16:14

2 respostas

1

Use a capacidade de linha de comando do PDFCreator para converter qualquer arquivo imprimível em PDF

  1. Instale o PDFCreator junto com sua interface COM
  2. Crie um novo arquivo de texto com o seguinte código e salve-o como C:\some\folder\Convert2PDF.vbs

    Set PDFCreator = Wscript.CreateObject("PDFCreator.clsPDFCreator", "PDFCreator_")
    With PDFCreator
     ReadyState = 0
     .cStart "/NoProcessingAtStartup"
     .cOption("UseAutosave") = 1
     .cOption("UseAutosaveDirectory") = 1
     .cOption("AutosaveFormat") = 0
     .cOption("AutosaveStartStandardProgram") = 0
     DefaultPrinter = .cDefaultprinter
     .cDefaultprinter = "PDFCreator"
     .cClearcache
     .cPrinterStop = false
     .cOption("AutosaveDirectory") = WScript.Arguments(1)
     .cOption("AutosaveFilename") = WScript.Arguments(2) 
     .cPrintfile cStr(WScript.Arguments(0))
      c = 0
      Do While (ReadyState = 0) and (c < 120)
       c = c + 1
       Wscript.Sleep 250
      Loop
     .cDefaultprinter = DefaultPrinter
     .cClearcache
     WScript.Sleep 200
     .cClose
    End With
    
    Public Sub PDFCreator_eReady()
     ReadyState = 1
    End Sub
    

Uso

CMD> C:\some\folder\Convert2PDF.vbs "C:\inputfile.doc" "C:\outputfolder" "outputfilename"
    
por 19.07.2013 / 21:06
0

Você pode imprimir em impressoras de arquivos a partir do Word com o método Application.PrintOut. Consulte o link para obter mais informações.

Set WordApp = CreateObject("Word.Application")
Set oArgs = Wscript.Arguments
doc = oArgs.Item(0)
'printer   
prt = oArgs.Item(1)
'prt = "4550PS"
' open the document
WordApp.Documents.Open(doc)

' set printer
WordApp.WordBasic.FilePrintSetup prt,,,1 

' print docx file to ps file
'OutputFileName = left(doc, len(doc) - 4)&"ps"
 OutputFileName = oArgs.Item(2)
 WordApp.ActiveDocument.PrintOut ,,, OutputFileName,,,,,,, True

 WordApp.ActiveDocument.Close False
 Set WordApp = nothing
 Set oArgs = nothing

Você executa o arquivo vbs acima da seguinte maneira: file.vbs c: \ my \ caminho \ para \ input.docx MyPrinter c: \ my \ caminho \ para \ output.ps

Verifique se os nomes das suas impressoras não contêm espaços ....

Eu escolho a "HP Color LaserJet 4550 PS" para arquivos PS coloridos, eu chamo-lhe 4550PS no Windows.

    
por 04.01.2014 / 09:52