2

Я настроил принтер PostScript с именем PSPinter для порта FILE. Я могу зайти в различные программы (MS Word, Excel, Acrobat и т.д.) И распечатать документ на этом принтере. Он запрашивает у меня имя файла, и как только он выводит файл, я могу проверить его и подтвердить, что это правильно сформированный PostScript. Мне нужно сделать что-то вроде того, что за кулисами вызывает нужную программу и вызывает функцию печати на нем:

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

У меня вопрос, как я могу сделать это программно из командной строки Windows? Я также должен иметь возможность указать имя выходного файла. С другой стороны, я открыт для использования чего-то вроде CutePDF для вывода (мне все равно, выводятся ли файлы в формате PDF или (E)PS), но этот метод также должен был бы запускаться программно из командной строки.

2 ответа2

1

Используйте возможность командной строки PDFCreator для преобразования любого файла для печати в PDF

  1. Установите PDFCreator вместе с его интерфейсом COM
  2. Создайте новый текстовый файл со следующим кодом и сохраните его как 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
    

использование

CMD> C:\some\folder\Convert2PDF.vbs "C:\inputfile.doc" "C:\outputfolder" "outputfilename"
0

Вы можете распечатать на принтере файлов из слова с приложением.Метод PrintOut. См. Http://msdn.microsoft.com/en-us/library/office/ff840681.aspx для получения дополнительной информации.

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

Вы запускаете указанный выше файл vbs следующим образом: file.vbs c:\my\path\to\input.docx MyPrinter c:\my\path\to\output.ps

Убедитесь, что имена ваших принтеров не содержат пробелов ....

Я выбираю "HP Color LaserJet 4550 PS" для цветных файлов PS, я называю его 4550PS в Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .