我已经将一个名为 PSPinter 的 PostScript 打印机设置为 FILE 端口。我可以进入各种程序(MS Word、Excel、Acrobat 等),并将文档打印到此打印机。它会要求我输入文件名,一旦它输出文件,我就可以检查它并确认它是格式正确的 PostScript。我需要做一些类似的事情,在后台调用正确的程序并调用它的打印功能:
print /d:PSPRinter <inputFile.docx> <outputName.ps>
我的问题是,我如何从 Windows 命令行以编程方式执行此操作?我还需要能够指定输出文件名。或者,我愿意使用 CutePDF 之类的东西来生成输出(我不在乎文件的输出是 PDF 还是 (E)PS),但此方法也必须从命令行以编程方式运行。
答案1
使用 PDFCreator 的命令行功能将任何可打印文件转换为 PDF
- 安装PDF创建器及其 COM 接口
使用以下代码创建一个新的文本文件并将其保存为
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"
答案2
您可以使用 Application.PrintOut 方法从 Word 打印到文件打印机。请参阅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 文件,在 Windows 中将其命名为 4550PS。