Come posso stampare più tipi di file in Windows dalla riga di comando?


2

Ho installato una stampante PostScript chiamata PSPinter sulla porta FILE. Posso accedere a vari programmi (MS Word, Excel, Acrobat, ecc.) E stampare il documento su questa stampante. Mi chiede un nome file e, una volta emesso il file, posso esaminarlo e confermare che è PostScript ben formato. Devo fare qualcosa del genere, che dietro le quinte invoca il programma giusto e chiama la funzione di stampa su di esso:

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

La mia domanda è: come posso farlo programmaticamente dalla riga di comando di Windows? Dovrei anche essere in grado di specificare il nome del file di output. In alternativa, sono aperto all'uso di qualcosa come CutePDF per produrre l'output (non mi interessa se l'output dei file è PDF o (E) PS), ma questo metodo dovrebbe anche essere eseguito a livello di codice dalla riga di comando.

Risposte:


1

Utilizzare la capacità della riga di comando di PDFCreator per convertire qualsiasi file stampabile in PDF

  1. Installa PDFCreator insieme alla sua interfaccia COM
  2. Crea un nuovo file di testo con il seguente codice e salvalo come 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"

Grazie! - Sembra fantastico! Devo ancora provarlo ...
cbannerjee,

Avevo scaricato PDFCreator, ma ho bisogno dei diritti di amministratore per installarlo ... il corp. I ragazzi IT devono prima darmi il permesso ...
cbannerjee,

Ha funzionato - grazie mille. Inoltre, per chi è interessato, ci sono molti esempi nell'installazione di PDFCreator nella cartella COM. Ciò rende l'utilizzo molto più chiaro.
cbannerjee,

0

È possibile stampare da file stampanti da Word con il metodo Application.PrintOut. Vedere http://msdn.microsoft.com/en-us/library/office/ff840681.aspx per ulteriori informazioni.

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

Si esegue il file vbs sopra riportato come segue: file.vbs c: \ my \ path \ to \ input.docx MyPrinter c: \ my \ path \ to \ output.ps

Assicurarsi che i nomi delle stampanti non contengano spazi ....

Ho scelto "HP Color LaserJet 4550 PS" per i file PS a colori, lo chiamo 4550PS in Windows.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.