如何通过MFC打开Word文档并打印它?

我们可以通过自动化方法完成要求的功能,下面这一段代码就很好地说明了问题:

 

_Application objWord;
      // Convenient values declared as ColeVariants.
      COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
      // Get the IDispatch pointer and attach it to the objWord object.
      if (!objWord.CreateDispatch("Word.Application"))
      {
         AfxMessageBox("Couldn't get Word object.");
         return;
      }
      objWord.SetVisible(TRUE);  //显示应用程序
      Documents docs(objWord.GetDocuments());
      _Document testDoc;
      testDoc.AttachDispatch(docs.Open(
                             COleVariant("C:\\Test.doc",VT_BSTR),
                             covFalse,    // 确定转换
                             covFalse,    // 只读打开
                             covFalse,    // 添加到最近使用文件列表
                             covOptional, // PasswordDocument.
                             covOptional, // PasswordTemplate.
                             covFalse,    // Revert.
                             covOptional, // WritePasswordDocument.
                             covOptional, // WritePasswordTemplate.
                             covOptional) // Format. // 如果是Word97,这便是最好一个参数
                                covOptional, // 编码 // 下面是Word 2000/2002专用的参数
                                covTrue,     // 可见
                                covOptional, // OpenConflictDocument
                                covOptional, // OpenAndRepair
                                (long)0,     // DocumentDirection wdDocumentDirection LeftToRight
                                covOptional  // NoEncodingDialog
                                )  
                                ); 
       AfxMessageBox("打印两份");
       testDoc.PrintOut(covFalse,              // 背景
                        covOptional,           // Append.
                        covOptional,           // Range.
                        covOptional,           // OutputFileName.
                        covOptional,           // From.
                        covOptional,           // To.
                        covOptional,           // Item.
                        COleVariant((long)2),  // 份数
                        covOptional,           // Pages.
                        covOptional,           // PageType.
                        covOptional,           // PrintToFile.
                        covOptional,           // Collate.
                        covOptional,           // ActivePrinterMacGX.
                        covOptional            // ManualDuplexPrint.
                        covOptional,           // PrintZoomColumn  New with Word 2002
                        covOptional,           // PrintZoomRow          ditto
                        covOptional,           // PrintZoomPaperWidth   ditto
                        covOptional);          // PrintZoomPaperHeight  ditto
      objWord.Quit(covFalse,  // 保存修改
                   covTrue,   // 原始格式
                   covFalse   // RouteDocument.
                   );