如何使 Word 使用 OLE 自动化从 Visual FoxPro 打印双面打印

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 194306
本文已归档。它按“原样”提供,并且不再更新。
概要
本文介绍如何使用 OLE 自动化 Visual FoxPro 从到的 Windows 97 的 Microsoft Word 打印文档双面打印。
更多信息
由于设置双面打印对话框是打印机的设置的一部分,还没有直接的命令可以发出,从而导致为打印双面打印的文档。但是,有三种方法的执行工作使您可以打印文档双面打印。

此测试中使用该打印机支持双面打印的惠普 LaserJet 打印机。

方法 1

使用 PRINT 域在 Word 中的发送双工模式将打印机的打印机转义代码。下面的代码演示这:
   oWord=CREATEOBJECT("Word.Application")   WITH oWord      .Visible=.T.      .Documents.Add      .Activewindow.View.ShowFieldCodes=0   && Don't view field codes.      * Insert PRINT field & Hewlett-Packard escape code for duplex, long-      * edge binding.      * It is an ampersand, lower-case L, numeric 1, and upper-case S.      .Selection.Fields.Add(.Selection.Range,-1,"PRINT 27 &l1S")      .Selection.Moveright      .Selection.Insertafter("Page 1")      .Selection.Moveright      odlog=oWord.Dialogs(159) && Insert page break w/ Dialogs collection.      odlog.Execute      .Selection.Insertafter("Page 2")      .Selection.Moveright      .Printout(0)                   && 0 turns off background printing.      .Application.Quit(0)           && Quit, don't save & don't prompt.   ENDWITH				
如果 Word 文档包含纵向和横向的节的混合的方向此代码将不起作用。

注意此代码仅适用于使用服务版本-1 (sr-1) 为 Word 97。 先前版本的 Word 97 执行不双工打印使用此代码。

要想正确打印在 Word 文档对于它不应该包含页眉或页脚在每一页上。它应打印双面打印如果文档是安装程序以有不同的首页页眉或页脚只和 PRINT 域会插入跟回车标头的第一行上。

方法 2

使用 SendKeys 命令可将键击发送到 Word,用于模拟使用来打开打印对话框中的键击。
   oWord=CREATEOBJECT("Word.Application")   WITH oWord      .Visible=.T.      .Documents.Add      * This code creates a two page document to print.      .Selection.Insertafter("Page 1 - With SendKeys")      .Selection.Moveright      odlog=oWord.Dialogs(159) && Insert page break w/ Dialogs collection.      odlog.Execute      .Selection.Insertafter("Page 2 - With SendKeys")      .Selection.Moveright      * End of document creation.      .Application.Activate      .Wordbasic.Sendkeys("%fp%p%d{enter}{tab}{enter}", -1)      =INKEY(2)   && May need to wait couple seconds before quitting.      .Application.Quit(0)           && Quit, don't save & don't prompt.   ENDWITH				
Sendkeys 命令中所占百分比签名表示访问 Windows 菜单使用 ALT 键。INKEY() 命令,Word 可以将 Windows 的可视 FoxPro 处理在退出前处理键击。这可能需要调整向上向下,或已删除,具体取决于应用程序。

若要用于 Sendkeys Word 必须可见,不最小化,因为键击必须转到活动窗口。通过使用 AppMove 命令,以便 Word 不会显示,但仍显示对话框中,您可以将 Word 移走屏幕。此外,使用 Sendkeys 可以是 disconcerting,因为菜单和对话框打开并处理,在 Word 中并按下 ALT + F 打开文件菜单的关键。

方法 3

创建用于发出在 Sendkeys 的 Word 宏。如果该宏的名称指定 SendKey,然后运行该宏从 Visual FoxPro 使用以下命令:
     oWord=CREATEOBJECT("Word.Application")       WITH oWord       .Visible=.T.       .Documents.Add       .Application.Activate       .Run("SendKey")       .Application.Quit(0)           && Quit, don't save & don't prompt.    ENDWITH				
Word 宏发送双面打印的快捷键的最小代码后面:
   Sub SendKey()      SendKeys "%fp%p%d{enter}{tab}{enter}"   End Sub				
笔记 请参见方法 2 中的注意的问题,您可能会遇到使用 SendKeys。
参考
有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
135569若要使用 PRINT 域 PCL 转义代码
有关如何获取 Word 为 Windows 97 服务发布 1 的其他信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
172475如何获取和安装 MS Office 97 sr-1
Microsoft Word Visual Basic 帮助

(c) 1998 年 Microsoft Corporation。保留的所有权限。由 Dean Christopher,Microsoft 公司的贡献。
kbVFp600 kbole kbInterOp kbvfp500a

警告:本文已自动翻译

属性

文章 ID:194306 - 上次审阅时间:12/05/2015 09:29:00 - 修订版本: 2.2

Microsoft Visual FoxPro 5.0a, Microsoft Visual FoxPro 6.0 专业版

  • kbnosurvey kbarchive kbmt kbcode kbhowto KB194306 KbMtzh
反馈