如何讓 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

將按鍵傳送至模擬使用按鍵輸入,以開啟 [列印] 對話方塊中的 Word 使用 SendKeys 巨集指令。
   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] 指令中 %簽署表示使用 ALT 鍵來存取 Windows 功能表。INKEY() 命令可以讓 Word 在按鍵之前,先處理 Windows 的 Visual FoxPro 處理 [結束。這可能需要調整向上向下,或視應用程式已移除。

若要用以 Sendkeys Word 必須是可見,不能縮小因為按鍵必須移至使用中視窗的。您可以利用 [AppMove] 指令,讓 Word 不會顯示,但對話方塊仍然顯示螢幕外移動 Word。而且,使用 Sendkeys 可以令人不安,因為功能表及對話方塊開啟,並如,如果您在 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) Microsoft Corporation 1998 年。保留所有的權限。由 Dean Christopher,Microsoft Corporation 的貢獻。

屬性

文章編號: 194306 - 上次校閱: 2005年1月27日 - 版次: 2.2
這篇文章中的資訊適用於:
  • Microsoft Visual FoxPro 5.0a
  • Microsoft Visual FoxPro 6.0 Professional Edition
關鍵字:?
kbmt kbcode kbhowto KB194306 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本: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