如何使 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 公司的贡献。

属性

文章编号: 194306 - 最后修改: 2005年1月27日 - 修订: 2.2
这篇文章中的信息适用于:
  • Microsoft Visual FoxPro 5.0a
  • Microsoft Visual FoxPro 6.0 专业版
关键字:?
kbmt kbcode kbhowto KB194306 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 194306
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com