Page 1 of 1

WORD Printout senza prompt

Posted: Mon Dec 27, 2010 4:50 am
by Ugo
Ciao,
dovendo stampare da word appare un prompt se i margini impostati nel documento sono inferiori a quelli della stampante scelta.
E' possibile forzare la stampa senza visualizzare niente?
Ecco un esempio (il messaggio non appare se si usano stampanti virtuali):

Code: Select all

//------------------------------------------------------------------------------

FUNCTION TestWord()

   LOCAL oWord
   TRY
      oWord := CreateObject( "Word.Application" )
      oDoc  := oWord:Documents:Add()
      oWord:Selection:InsertAfter ( "This is a test." )
      // Impostazione pagina
      WITH OBJECT oDoc:PageSetup()
         :TopMargin      := 0
         :BottomMargin   := 0
         :LeftMargin     := 0
         :RightMargin    := 0
      END WITH

      // If the printer's margin is more big than set, word display a prompt.
      // When use oWord:DisplayScreenTips := .F., the prompt is not displayed but the process is blocked
      oWord:PrintOut()

      oWord:Quit()

   CATCH

      oWord:Quit()

   END

   RETURN Nil

//------------------------------------------------------------------------------
 
Grazie per l'aiuto.

Re: WORD Printout senza prompt

Posted: Mon Dec 27, 2010 3:36 pm
by Enrico Maria Giordano
Prova con

Code: Select all

#define wdAlertsNone 0

oWord:DisplayAlerts = wdAlertsNone
EMG

Re: WORD Printout senza prompt

Posted: Mon Dec 27, 2010 6:38 pm
by Ugo
Enrico Maria Giordano wrote:Prova con

Code: Select all

#define wdAlertsNone 0

oWord:DisplayAlerts = wdAlertsNone
EMG
Enrico,
grazie per la risposta, ma continua ad apparire il prompt con il messaggio: :(
"i margini della sezione 1 sono esterni all'area di stampa della pagina, continuare?".

Re: WORD Printout senza prompt

Posted: Mon Dec 27, 2010 6:57 pm
by Enrico Maria Giordano
Allora probabilmente non è proprio possibile stampare con quei margini.

EMG

Re: WORD Printout senza prompt

Posted: Tue Dec 28, 2010 7:32 pm
by Ugo
Enrico Maria Giordano wrote:Allora probabilmente non è proprio possibile stampare con quei margini.

EMG
Enrico,
il messaggio è un warning.
Se clicco su si (prosegui) stampa la pagina magari cancellando parte del contenuto (tutto ciò che non rientra nella zona stampabile).
In pratica, per ciò che devo fare, l'utente dovrà sempre dare si. Se fosse possibile evitare il passaggio sarebbe meglio; se non si può pazienza.
Intanto grazie.

Re: WORD Printout senza prompt

Posted: Tue Dec 28, 2010 7:40 pm
by Enrico Maria Giordano
Oltre a DisplayAlerts non sono a conoscenza di altri modi. Sei sicuro di aver fatto la prova per bene? Magari mandami DOC e PRG per fare la prova qui.

EMG

Re: WORD Printout senza prompt

Posted: Fri Dec 31, 2010 11:57 am
by Ugo
Enrico Maria Giordano wrote:Oltre a DisplayAlerts non sono a conoscenza di altri modi. Sei sicuro di aver fatto la prova per bene? Magari mandami DOC e PRG per fare la prova qui.
Enrico,
l'esempio postato è completo!
Devi solo selezionare una stampante fisica con dei margini, le stampanti virtuali, dai miei test, non soffrono del problema.

P.S. Grazie e buon anno a tutti.

Re: WORD Printout senza prompt

Posted: Fri Dec 31, 2010 1:24 pm
by Enrico Maria Giordano
A me così funziona regolarmente:

Code: Select all

//------------------------------------------------------------------------------

FUNCTION TestWord()

   LOCAL oWord, oDoc
   TRY
      oWord := CreateObject( "Word.Application" )
      oDoc  := oWord:Documents:Add()
      oWord:Selection:InsertAfter ( "This is a test." )
      // Impostazione pagina
      WITH OBJECT oDoc:PageSetup()
         :TopMargin      := 0
         :BottomMargin   := 0
         :LeftMargin     := 0
         :RightMargin    := 0
      END WITH

      // If the printer's margin is more big than set, word display a prompt.
      // When use oWord:DisplayScreenTips := .F., the prompt is not displayed but the process is blocked
      oWord:PrintOut( .F. )

      oDoc:Close( 0 )

      oWord:Quit()

   CATCH

      oWord:Quit()

   END

   RETURN Nil

//------------------------------------------------------------------------------

EMG