Как я могу напечатать несколько типов файлов в Windows из командной строки?

2166
cbannerjee

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

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

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

2

2 ответа на вопрос

1
nixda

Используйте возможность командной строки 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" 
Спасибо! - Это выглядит великолепно! Я еще не попробовал это ... cbannerjee 11 лет назад 0
Я скачал PDFCreator, но мне нужны права администратора, чтобы установить его ... корп. Сначала ребята должны дать мне разрешение ... cbannerjee 11 лет назад 0
Работал - спасибо большое. Также для тех, кто интересуется, есть множество примеров в PDFCreator, установленном в папке COM. Это делает использование намного понятнее. cbannerjee 11 лет назад 0
0
user2531336

Вы можете печатать на файловых принтерах из слова с помощью метода Application.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.