当前位置:编程学习 > C#/ASP.NET >>

关于word 打印的问题

引用Microsoft.Office.Interop.Word后
然后调用PrintOut 方法
运行后 跟断点 发现到PrintOut 是长时间没有反映
应该不是打印机的问题 打印测试页是正常的
上一段代码

            object background = false;
            object filename = "C:\\tem.doc";

            wDoc.SaveAs(ref filename, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref
missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
           
                wDoc.PrintOut(ref background, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref
missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,

    ref missing);

--------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- http://msdn.microsoft.com/library/en-us/vbawd10/html/womthPrintOut.asp

参考下这个。 --------------------编程问答--------------------
引用 3 楼 haa17 的回复:
http://msdn.microsoft.com/library/en-us/vbawd10/html/womthPrintOut.asp
参考下这个。

Background  Optional Variant. Set to True to have the macro continue while Microsoft Word prints the document.

不太了解这句话的意思 和宏有什么关系


--------------------编程问答-------------------- 换个打印机试下。。

必须安装office的.net开发包。
在工程的reference中添加com组件:Microsoft Word 11.0 Object Library
打印的代码如下:
 
Microsoft.Office.Interop.Word.Application app = null;
            Microsoft.Office.Interop.Word.Document doc = null;
            object missing = System.Reflection.Missing.Value;
            object templateFile = Application.StartupPath + @"\表单模版.doc";
            try
            {
                app = new Microsoft.Office.Interop.Word.ApplicationClass();
                doc = app.Documents.Add(ref templateFile, ref missing, ref missing, ref missing);
                try
                {
                    foreach (Microsoft.Office.Interop.Word.Bookmark bm in doc.Bookmarks)
                    {
                        bm.Select();
                        string item = bm.Name;
                        if (item.Equals("in_time"))
                        {
                            bm.Range.Text = table.inTime == null ? "" : table.inTime.ToString();
                        }
                        else if (item.Equals("car_id"))
                        {
                            bm.Range.Text = table.carID == null ? "" : table.carID.ToString();
                        }
                                       }
                }
                catch
                {
                }
                //打印
               doc.PrintOut(ref missing, ref missing, ref missing, ref missing, 
                    ref missing, ref missing, ref missing, ref missing, ref missing, 
                    ref missing, ref missing, ref missing, ref missing, ref missing, 
                    ref missing, ref missing, ref missing, ref missing);
                     }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message, this.Text);
            }
//销毁word进程
            finally
            {
               object saveChange = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
                if (doc != null)
                    doc.Close(ref saveChange, ref missing, ref missing);
                if (app != null)
                    app.Quit(ref missing, ref missing, ref missing);
            }

--------------------编程问答--------------------
引用 5 楼 wxr0323 的回复:
换个打印机试下。。

必须安装office的.net开发包。
在工程的reference中添加com组件:Microsoft Word 11.0 Object Library


按装.net的开发包  这个是什么 我在网上搜了一下 也,没有这东西的下载
是不是不安装就没有 com组件?
--------------------编程问答-------------------- System.Runtime.InteropServices.COMException: 编号无效

现在报这个错误!! --------------------编程问答-------------------- 先定个点 --------------------编程问答--------------------
引用 8 楼 lw402365015 的回复:
先定个点


wDoc.PrintOut(ref background, ref missing, ref filename, ref missing, ref missing, ref missing, ref missing, ref
行 79: missing, ref missing, ref a1, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
行 80: 

就算是打印这报的错误 ! --------------------编程问答-------------------- 找到  编号无效  的错误原因  我参数有问题
刚才在csdn上搜了一下 C#word  看来我的问题得到答案的希望渺茫
--------------------编程问答-------------------- 用Microsoft.Office.Interop.Word后要注意版本问题.我之前做2003没有问题,2007有问题 --------------------编程问答--------------------
引用 11 楼 rpwlp888 的回复:
用Microsoft.Office.Interop.Word后要注意版本问题.我之前做2003没有问题,2007有问题


我现在用的是2003 别的都没问题 就是在打印的时候长时间没有响应
也不报错
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,