nix*_*xda 4 windows-7-x64 jscript
我想通过PDF打印机打印文件,这不是默认打印机.我能够将普通打印机暂时更改为PDF打印机.
但我不知道如何通过Jscript打印.doc,.txt或.xls.此外,我找不到保存默认打印机名称的方法,因此我可以在打印文件后切换回来.
var objShell = new ActiveXObject("Shell.Application");
var objFSO = new ActiveXObject("Scripting.FileSystemObject");
try {
var PDFCreatorQueue = new ActiveXObject("PDFCreatorBeta.JobQueue");
PDFCreatorQueue.Initialize();
var sourceFile = WScript.Arguments(0)
var sourceFolder = objFSO.GetParentFolderName(sourceFile)
var sourceName = objFSO.GetBaseName(sourceFile)
var targetFile = sourceFolder + "\\" + sourceName + ".pdf"
//HERE GOES THE COMMAND TO SAVE THE CURRENT DEFAULT PRINTER NAME TO A TEMP VARIABLE
objNet.SetDefaultPrinter("PDFCreator");
//HERE GOES THE PRINT COMMAND WHICH I DON'T KNOW
// HERE GOES THE COMMAND TO CHANGE BACK TO THE OLD DEFAULT PRINTER
if(!PDFCreatorQueue.WaitForJob(3)) {
WScript.Echo("The print job did not reach the queue within " + 3 + " seconds");
}
else {
var job = PDFCreatorQueue.NextJob;
job.SetProfileByGUID("DefaultGuid");
job.ConvertTo(targetFile);
if(!job.IsFinished || !job.IsSuccessful) {
WScript.Echo("Could not convert the file: " + targetFile);
}
}
PDFCreatorQueue.ReleaseCom();
}
catch(e) {
WScript.Echo(e.message);
PDFCreatorQueue.ReleaseCom();
}
Run Code Online (Sandbox Code Playgroud)
使用ShellFolderItem.InvokeVerbEx()函数.MSDN文章中的JScript示例代码显示了如何使用它.将第一个参数设为"print",将第二个参数设为打印机的名称.因此,您可以删除使用默认打印机修补的代码.
| 归档时间: |
|
| 查看次数: |
956 次 |
| 最近记录: |