2009-04-15 2 views
5

Sto utilizzando il seguente codice per stampare un documento word da un'app C#.Utilizzo di Process.Start per stampare documenti senza mostrare Word

  ProcessStartInfo info = new ProcessStartInfo(myDocumentsPath); 
      info.Verb = "Print"; 
      info.CreateNoWindow = true; 
      info.WindowStyle = ProcessWindowStyle.Hidden; 
      Process.Start(info); 

Questo funziona perfettamente Word apre e stampa il documento e quindi si chiude verso il basso. Il problema è che Word si apre visibilmente, nonostante CreateNoWindow = true e WindowsStyle = Hidden. Mi sarei aspettato queste due impostazioni per significare che Word si apriva silenziosamente.

MODIFICA: Si prega di non suggerire l'automazione del modello di oggetti Word - Ho molti tipi di documenti diversi che devono essere stampati (PDF ecc.) - sono solo documenti di Word che stanno causando il problema al momento.

Qualche idea?

TIA

Matt

+0

Che cosa si intende per Word automazione oggetto del modello? Intendi Microsoft.Interop.Word? –

+1

@Jon: l'automazione di Word non richiede necessariamente l'utilizzo di Microsoft.Interop.Word. È solo un modo oltre all'utilizzo di VBA o COM. In realtà, Microsoft.Interop.Word non è altro che un wrapper per le interfacce COM e in effetti non è richiesto per l'automazione dai linguaggi .NET. –

+0

+1 divo. Ricordo, ai vecchi tempi, quando sognavamo l'interoperabilità della COM. DDE era buono come lo era :-) – Matt

risposta

6

Word è libero di ignorare (e apparentemente non ignorare) la vostra richiesta che rimangono nascosti.

Vedi anche Why is my hidden process still visible?

+0

Sì, è vero. Ed è per questo che non c'è modo di aggirare l'automazione COM se vuoi che la tua app non sia visibile. –

+0

Questo è un dolore - speravo di evitare interops. Oh bene...:-) – Matt