Простое решение
Если путь вывода не имеет значения, вы можете попробовать PDFCreator с помощью следующей командной строки:
C:\Program Files (x86)\PDFCreator>PDFCreator.exe /NOSTART /PF"C:\test.doc"
- В графическом интерфейсе необходимо включить функцию « Автосохранение» и один раз установить путь автосохранения.
Отныне этот путь будет использоваться каждый раз, когда вы выполняете команду выше
- Вы должны установить PDFCreator в качестве принтера по умолчанию
Совет:
По GUI вы можете сохранить свои настройки в профиле (.INI-файл), который затем можно выбрать при выполнении командной строки. Таким образом, вам не нужно использовать автосохранение по умолчанию для каждой обычной печати (например, из Word или Excel)
PDFCreator.exe /NoStart /OptionsFile"C:\myprofile.ini" /PF"C:\test.doc"
Усовершенствованное решение
Преимущество второго решения заключается в том, что вам не нужно устанавливать PDFCreator в качестве принтера по умолчанию и вы имеете полный контроль над путем и именем выходного файла
Установите PDFCreator вместе с его COM-модулем
Скопируйте и вставьте этот код в текстовый файл и сохраните его как 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
Вы можете выполнить свой файл VBScript из командной строки с помощью следующего синтаксиса:
Convert2PDF.vbs "C:\input.doc" "C:\outputfolder" "outputfilename"
Лично я использую немного другую версию, где папка ввода и вывода + имя файла остается прежним. Я создал ярлык в моей оболочке: папка shell:sendto
для простого преобразования файлов по щелчку правой кнопкой мыши