Csharp 打印Word文件默認打印機或選擇打印機設置代碼

本文详细介绍了一种使用VBA代码自动化打印Word文档的方法。通过设置默认打印机、打印份数、打印页面范围等参数,实现了对Word文档的精确打印控制。此外,还介绍了如何检查背景打印状态以及关闭和退出Word应用程序的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 //打印文檔
                    object nullobj = Missing.Value;
                    //aDoc = wordApp.Documents.Open(ref file,
                    //                            ref nullobj, ref nullobj, ref nullobj,
                    //                            ref nullobj, ref nullobj, ref nullobj,
                    //                            ref nullobj, ref nullobj, ref nullobj,
                    //                            ref nullobj, ref nullobj, ref nullobj,
                    //                            ref nullobj, ref nullobj, ref nullobj);



                    //aDoc.Activate();
                    wordApp.Visible = false;
                    //wordApp.ActivePrinter = "My Printer Name";
                    try
                    {
                        // 參考:http://msdn.microsoft.com/en-us/library/b9f0ke7y.aspx 
                        //塗聚文 2011-11-04 缔友计算机信息技术有限公司
                        //1。默認打印機設置
                        PrintDialog print = new PrintDialog();
                        print.PrinterSettings = new PrinterSettings();
                        strDefaultPrinter = print.PrinterSettings.PrinterName;
                        aDoc.Application.ActivePrinter = strDefaultPrinter;
                        object copies = "1";
                        object pages = "1";
                        object range = Word.WdPrintOutRange.wdPrintCurrentPage;
                        object items = Word.WdPrintOutItem.wdPrintDocumentContent;
                        object pageType = Word.WdPrintOutPages.wdPrintAllPages;
                        object oTrue = true;
                        object oFalse = false;
                        aDoc.PrintOut(ref nullobj, ref nullobj, ref nullobj, ref nullobj,
                        ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj,
                        ref nullobj, ref nullobj, ref nullobj, ref nullobj,
                        ref nullobj, ref nullobj);

                    //    aDoc.PrintOut(ref oTrue, ref oFalse, ref range, ref nullobj,
                    //ref nullobj, ref nullobj, ref items, ref copies, ref pages, ref pageType, ref nullobj, ref nullobj,
                    //ref nullobj, ref nullobj, ref nullobj, ref nullobj,
                    //ref nullobj, ref nullobj);
                        //2。弹出打印機设置
                        //塗聚文 2011-11-04 缔友计算机信息技术有限公司
                        //int dialogResult = wordApp.Dialogs[Microsoft.Office.Interop.Word.WdWordDialog.wdDialogFilePrint].Show(ref nullobj);
                        //if (dialogResult == 1)
                        //{
                        //    aDoc.PrintOut(ref nullobj, ref nullobj, ref nullobj, ref nullobj,
                        //                 ref nullobj, ref nullobj, ref nullobj, ref nullobj,
                        //                 ref nullobj, ref nullobj, ref nullobj, ref nullobj,
                        //                 ref nullobj, ref nullobj, ref nullobj, ref nullobj,
                        //                 ref nullobj, ref nullobj);
                        //}
                        while (wordApp.BackgroundPrintingStatus > 0)
                        {
                            System.Threading.Thread.Sleep(250);
                        }


                        Object saveChanges = Word.WdSaveOptions.wdSaveChanges;
                        Object originalFormat = Type.Missing;
                        Object routeDocument = Type.Missing;
                        wordApp.Documents.Close(ref saveChanges,
                            ref originalFormat, ref routeDocument);
                        Object saveChangesQuit = Word.WdSaveOptions.wdSaveChanges;
                        Object originalFormatQuit = Type.Missing;
                        Object routeDocumentQuit = Type.Missing;
                        wordApp.Quit(ref saveChangesQuit,
                            ref originalFormatQuit, ref routeDocumentQuit);


                    }
                    catch (Exception ex)
                    {
                        ex.ToString();
                        MessageBox.Show("請設定默認打印機");
                    }
                    finally
                    {
                        //MessageBox.Show("你設定的默認打印機是:"+strDefaultPrinter.ToString());
                    }

                }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值