Como tornar o Word de impressão duplex utilizando Automatização OLE a partir do Visual FoxPro

Traduções de Artigos Traduções de Artigos
Artigo: 194306 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo descreve como utilizar a automatização OLE a partir do Visual FoxPro para o Microsoft Word para Windows 97 para imprimir um documento duplex.

Mais Informação

Uma vez que a caixa de diálogo conjuntos de impressão em frente e verso é parte da configuração da impressora, não existe um comando directo (que pode emitir que faz com que um documento para impressão duplex. No entanto, existem três formas que funcionam permitindo-lhe imprimir documentos duplex.

A impressora utilizada neste teste é uma impressora Hewlett-Packard LaserJet, que suporta a impressão em frente e verso.

Método 1

Utilize o campo PRINT no Word para enviar o código de escape de impressora que coloca a impressora em modo duplex. O seguinte código demonstra este:
   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
				
este código não funciona se o documento do Word contém orientação mista, que é vertical e horizontal secções.

Nota Este código funciona apenas com o Service Release-1 (SR-1) para o Word 97. Versões anteriores do Word 97 não impressão duplex não utilizando este código.

Para o documento do Word imprimir correctamente, este não deve conter cabeçalhos ou rodapés em todas as páginas. No entanto, deve imprimir duplex se o documento está configurada para ter uma cabeçalho da primeira página ou rodapé só e o campo PRINT é inserido na primeira linha do cabeçalho seguido por um símbolo de retorno.

Método 2

Utilize o comando ComandosPorTeclado para enviar combinações de teclas para o Word, que simula utilizar batimentos de teclas para abrir a caixa de diálogo Imprimir.
   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
				
comando Sendkeys, % assinar representa utilizar a tecla ALT para aceder a menus de Windows. O comando INKEY() permite ao Word processar os batimentos de tecla antes do Visual FoxPro para Windows processa a sair. Isto necessitar de ser ajustado cima, para baixo ou removido dependendo da aplicação.

Para utilizar Sendkeys, o Word tem de ser visível, não minimizada, uma vez que os batimentos de tecla devem ir para uma janela activa. Pode mover Word fora do ecrã utilizando o comando AppMove, para que o Word não mostra mas, ainda assim mostra a caixa de diálogo. Além disso, a utilização de Sendkeys pode ser disconcerting porque os menus e caixas de diálogo Abrir e processam como se encontravam no Word e premidas as teclas ALT + F para abrir o menu ficheiro.

Método 3

Crie uma macro Word que emite o Sendkeys. Se a macro é o nome SendKey, em seguida, executar a macro do Visual FoxPro utilizando o seguinte comando:
     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
				
segue o código de mínimo da macro do Word enviar as teclas para impressão em frente e verso:
   Sub SendKey()
      SendKeys "%fp%p%d{enter}{tab}{enter}"
   End Sub
				
NOTA: consulte a nota no método 2 para problemas que poderão ocorrer utilizando SendKeys.

Referências

Para obter mais informações, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
135569Códigos de escape PCL para utilizar com o campo PRINT
Para obter informações adicionais sobre como obter o Word para Windows 97 Service Release 1, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
172475Como obter e instalar o MS Office 97 SR-1
Ajuda do Visual Basic do Microsoft Word

(c) Microsoft Corporation 1998. Todos os direitos reservados. Contribuições de Dean Christopher, Microsoft Corporation.

Propriedades

Artigo: 194306 - Última revisão: 27 de janeiro de 2005 - Revisão: 2.2
A informação contida neste artigo aplica-se a:
  • Microsoft Visual FoxPro 5.0a
  • Microsoft Visual FoxPro 6.0 Professional Edition
Palavras-chave: 
kbmt kbcode kbhowto KB194306 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 194306

Submeter comentários

 

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