原来我照着网上找的个资料做了一个功能,在本地编译运行是可以转换成PDF,但是放在IIS上面之后却不行,改了对文件的读写权限,也不行(改了权限可以将word转换成PS文件,没改权限什么都不能转换)。
具体代码如下:
 宿主脚本文件名:ConvertDoc2PDF.js  脚本文件内容:var files = WScript.Arguments;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var word = new ActiveXObject("Word.Application");
var PDF = new ActiveXObject("PDFDistiller.PDFDistiller.1");
word.ActivePrinter = "MS Publisher Color Printer";//files(0) 为WORD文档文件名
//files(1) 为,转换后需要保存的路径
//调用fso.GetBaseName(files(0))后,为无路径,无扩展名,的文件名
//files.length为文件参数的个数,使用循环可以支持多个WORD文档的转换var docfile = files(0);
var psfile = files(1) + fso.GetBaseName(files(0)) + ".ps";
var pdffile = files(1) + fso.GetBaseName(files(0)) + ".pdf";
var logfile = files(1) + fso.GetBaseName(files(0)) + ".log";try{
var doc = word.Documents.Open(docfile);
//WORD文件转成PS文件;
word.PrintOut(false, false, 0, psfile);
doc.Close(0);//PS文件转成PDF文件;
PDF.FileToPDF(psfile,pdffile,"");fso.GetFile(psfile).Delete();//删除PS脚本文件
fso.GetFile(logfile).Delete();//删除转换的日志文件word.Quit();
WScript.Echo("isuccess");//成功
WScript.Quit(0);
}
catch(x)
{
word.Quit();
WScript.Echo("isfail");//失败
WScript.Quit(0);

public void StartConvertPDF()
{
 Process proc = new Process(); 
 proc.StartInfo.FileName = "cmd.exe"; 
 proc.StartInfo.WorkingDirectory = @"c:\"; 
 proc.StartInfo.CreateNoWindow = true; 
 proc.StartInfo.UseShellExecute = false; 
 proc.StartInfo.RedirectStandardInput = true; //输入重定向 proc.Start();
 proc.StandardInput.WriteLine(@"cscript //nologo c:\ConvertDoc2PDF.js c:\test.doc c:\");
 proc.StandardInput.WriteLine("exit");
 proc.WaitForExit();