`
huozheleisi
  • 浏览: 1238600 次
文章分类
社区版块
存档分类
最新评论

使用自动化打开并打印WORD文档

 
阅读更多

摘要

这篇文章讲述了如何在Visual C++5.0或6.0中自动打开并打印Microsoft Word文档。

更多信息

你可以将文章中的代码拷贝到自己的MFC .cpp文件中的事件定义消息处理函数中去。然而,这些代码主要是为了阐述如何处理在Msword8类型库中定义的IDispatch接口与成员函数。读懂并理解了这些代码你就可以修改这些例子,或写些打开并打印Microsoft Word文档的程序。

因为Word2000中的一些方法与属性有些改变,更多信息请阅读:Office类型库中新的改变

创建工程步骤

1. 在Microsoft Word中,创建新文档,添加一些文字并保存为Test.doc。关闭文档并退出Word。

2. 根据下面知识库中文章的1-12步提供的方法, 我们使用MSWord8.olb类型库中定义的IDispatch接口及其成员函数来创建示例项目。

如何使用MFC和类型库创建自动化项目

3. 在AutoProjectDlg.cpp的顶部添加如下行:

#include "msword8.h" // msword9.h for Word 2000, msword.h for Word 2002

4. 在AutoProjectDlg.cpp文件的CAutoProjectDlg::OnRun() 中添加如下代码

_Application objWord;

// 用COleVariant定义变量比较方便
COleVariant covTrue((short)TRUE),
            covFalse((short)FALSE),
            covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

// 得到 IDispatch 指针并附加到objWord对象中.
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, // 文档口令.
                      covOptional, // 模板口令.
                      covFalse,    // 恢复原状.
                      covOptional, // 写文档口令.
                      covOptional, // 写模板口令.
                      covOptional) // 格式. // 该参数用于 Word 97 以前
                      covOptional, // 编码 // 用于 Word 2000/2002
                      covTrue,     // 可见
                      covOptional, // OpenConflictDocument
                      covOptional, // 打开并修复
                      (long)0,     // DocumentDirection wdDocumentDirection LeftToRight
                      covOptional  // 无编码对话框
                      )  // Close Open parameters
                      ); // Close AttachDispatch(…)

AfxMessageBox("Now printing 2 copies on the active printer");

testDoc.PrintOut(covFalse,              // Background.
                        covOptional,           // Append.
                        covOptional,           // Range.
                        covOptional,           // OutputFileName.
                        covOptional,           // From.
                        covOptional,           // To.
                        covOptional,           // Item.
                        COleVariant((long)2),  // Copies.
                        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
// 如果你希望打印前预览文档,你可以使用PrintPreview代替PrintOut//    testDoc[i].PrintPreview.

objWord.Quit(covFalse,  // SaveChanges.
                   covTrue,   // OriginalFormat.
                   covFalse   // RouteDocument.
                   );
		

5. 你可能需要修改CAutoProjectDlg::OnRun中的代码指明Test.doc文档的所在路径。参考如下代码:

testDoc.AttachDispatch(docs.Open(
                            COleVariant("C://My Docs//Test.doc",VT_BSTR)...

参考

关于自动化Office的更多信息,可以参考如下文章:
1) 如何找到并使用Office对象模型文档
2) 微软关于Office自动化的Web站点

分享到:
评论

相关推荐

    计算机应用基础课件——Word排版知识.pptx

    Word排版知识 3.09 使用样式和格式 3.10 模板快速格式化文档 3.11 项目符号与编号 3.12 查找与替换 3.13 自动更正 3.14 长文档的编辑技巧 3.15 浏览长文档 3.16 设置页眉和页脚 计算机应用基础课件——Word排 知识...

    计算机应用基础word讲解.pptx

    Office 2003简介 MS-Office办公系列软件是美国微软公司开发的,全面支持简繁体中文的新一代办公信息化、自动化的套装软件包。 MS-Office办公系列软件是微软公司除了Windows操作系统外。在中国市场应用最广泛的软件...

    功能强大的免费DataGridView打印控件

    3、支持同一文档多种版面格式打印(类似于Word中的节的功能):对同一份文档,不同的页面可以设置不同的格式(纸张大小、纸张方向、页边距),只需要在新增一页时在NewPage方法中指定要使用的页面格式即可,使用非常...

    科翰SOAOffice领导签字手写批注痕迹保留文档控件v4.1(免费).rar

    能够在浏览器窗口中直接编辑Word、Excel、Powerpoint、Viso、WPS等文档并保存到Web服务器上,实现了本地办公与网络办公的无缝整合,彻底解决了B/S模式下的电子政务/办公自动化等系统对常用Word、Excel等文档无法在线...

    Microsoft-Word2010培训教程.doc

    目 录 1基本操作 4 1.1启动和认识Word 2010工作界面 4 1.2新建文档 5 1.3打开文档 7 1.4保存文档 8 1.5关闭文档 9 2文本录入与编辑 10 2.1文本的录入 10 2.1.1中英文录入 10 2.1.2插入符号 10 2.2文本的编辑 11 ...

    WondersharePDFelementProfessional8.3.6.1236x64一款功能十分强大的PDF编辑器

    打开PDF文档并打开PDF编辑模式,以修改PDF文档的文本并更改字体、字号和颜色。编辑图像和其他对象,随意拖动或移动要编辑的对象,自由添加和调整图像的大小,选择图像的位置,剪辑图像,多图片对齐等。 PDF格式转换...

    NTKO文档在线编辑控件独立安装包4.0.6.5(适合TA2009\2010\2011版本)

    NTKO OFFICE文档控件能够在浏览器窗口中直接编辑Word,Excel等Office文档并保存到任意Web服务器。实现文档和电子表格的统一管理。同时支持强制痕迹保留,手写签名,电子印章,版本控制等办公自动化系统必备的功能。是...

    PowerPoint 2000 Excel 2000 Word 2000 Windows 2000操作系统 计算机基础知识 计算机考试题库

    5.掌握文档的基本操作:创建一个新文档,保存文档,打开文档,选定文本内容,编辑文档(删除、移动和复制文本,撤销与重复编辑操作),查找、替换、自动更正与校对,文档的显示(普通、联机版式、页面和大纲显示)...

    计算机应用基础项目化教程—第3模块.pptx

    将Word文档转换为PDF格式文件的操作方法是: (1)下载并安装Office 2010 "Save As PDF and XPS"加载插件。 (2)单击"文件" " 另存为"命令,在"另存为"对话框中,保存类型选择"PDF(*.pdf)"选项,单击"保存"按钮即可。 ...

    soaoffice示例代码

    使用ole服务器自动化技术调用Word/Excel经常产生死进程或系统不稳定的; 10.Web系统中调用Word/Excel的页面有大量并发用户访问的; 11.使用jacob、jxl、apache poi的; 12.需要在Web中调用Word/Excel,并且追求系统...

    VBA题库管理系统 信息初始化 生成试卷

    用其内嵌的编程语言VBA进行二次开发得到的应用软件,既可以使繁琐、重复操作自动化,提高工作效率和应用水平,同时又不改变Word原有的界面风格、系统功能和操作方式,特别是它的编辑、排版、打印功能。用户不必经过...

    SOAOFFICE - 微软 OFFICE 中间件

    3. 需要动态生成指定格式的Word文档的; 4. 需要把html页面中表格导出到excel的; 5. 需要在html页面中套打票据、报表的; 6. 需要在html页面中显示复杂报表,并要求精确打印预览及打印的; 7. 需要动态生成中国式...

    BitWare 用modem发传真打电话的软件

    1.选用适当的 Windows 应用程序,如 Excel、Word 或 CorelDRAW 打开或创建一份文档。 2.选择该应用程序的“打印”命令,就会出现“打印”对话框。 3.先检查是否将 BitWare 设置为您当前的打印机。如果未选择 ...

    计算机应用基础实践考核大纲.doc

    6、"常用"工具栏的使用 7、"格式"工具栏的使用 8、文档窗口的用途和多窗口操作 9、对话框:单选按钮、复选框按钮、文本框、列表框、选项卡和命令按钮 10、创建新文档 11、打开已有的文档 12、输入文档 13、修改文档 ...

Global site tag (gtag.js) - Google Analytics