怎么写一个用cutepdf虚拟打印机,把word输出成pdf

yespie 2008-10-16 04:38:00
我装了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);

...全文
603 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wartim 2008-10-16
  • 打赏
  • 举报
回复
额。。。看错,好像lz已经下了一个,不过我以前下的是自己安装的一个工具,不用自己再用我以前用的delphi开发好像,忘了
wartim 2008-10-16
  • 打赏
  • 举报
回复
网上有pdf虚拟打印机的,调用页面设置后设置成pdf打印机直接打印到pdf文件
yespie 2008-10-16
  • 打赏
  • 举报
回复
别沉下去啊

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧