怎么写一个用cutepdf虚拟打印机,把word输出成pdf
我装了cutepdf这个虚拟打印机,然后在网上找了一个代码改了一上,想把word文件打印输出成pdf文件,结果发现,输出的pdf文档打不开,比正常转换的大很多,但是在word里边点 打印 -> 选择cutepdf write打印机 ,输出的pdf就正常,请大家帮我看看代码是哪出问题。谢谢
oWord.ApplicationClass word = new oWord.ApplicationClass();
Type wordType = word.GetType();
//打开WORD文档
oWord.Documents docs = word.Documents;
Type docsType = docs.GetType();
object objDocName = @"d:\20081015.doc";
oWord.Document doc = (oWord.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { objDocName, true, true });
//打印输出到指定文件
//可以使用 doc.PrintOut();方法,次方法调用中的参数设置较繁琐,建议使用 Type.InvokeMember 来调用时可以不用将PrintOut的参数设置全,只设置4个主要参数
Type docType = doc.GetType();
object printFileName = @"d:\w999" + ".pdf";
word.Visible = true;
Object varMissing = System.Reflection.Missing.Value;
object PrintToFile = true;
word.ActivePrinter = "CutePDF Writer";
doc.PrintOut(ref varMissing, ref varMissing, ref varMissing, ref printFileName, ref varMissing,
ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref PrintToFile,
ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing);
//docType.InvokeMember("PrintOut", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { false, false, oWord.WdPrintOutRange.wdPrintAllDocument, printFileName });
//退出WORD
wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);