2017-03-04 15 views
1

Ich verwende C# und Word Interop, um einen Seriendruck zu automatisieren. Ich möchte jedes zusammengeführte Dokument mit den Standardoptionen auf den Standarddrucker drucken, möchte aber nicht, dass der Druckoptionsdialog jedes Mal angezeigt wird. Wie kann ich das machen? Wenn ich diesen Code auf meinem Clientcomputer ausprobiere, wird beim Aufruf der PrintOut-Methode ein Dialogfeld mit den Druckoptionen angezeigt. Hier ist mein Code:Wie kann ich ein Word-Dokument in C# drucken, ohne den Druckdialog anzuzeigen

Word.Application oWord = new Word.Application(); 
oWord.Visible = false; 
Word.Document oWordDoc = new Word.Document(); 
object oTemplatePath = Path.Combine(baseDir, fileName); 
oWordDoc = oWord.Documents.Add((ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing); 
object copies = "1"; 
object pages = ""; 
object range = Word.WdPrintOutRange.wdPrintAllDocument; 
object items = Word.WdPrintOutItem.wdPrintDocumentContent; 
object pageType = Word.WdPrintOutPages.wdPrintAllPages; 
object oTrue = true; 
object oFalse = false; 
oWordDoc.PrintOut(ref oTrue, ref oFalse, ref range, ref oMissing, ref oMissing, ref oMissing, ref items, ref copies, ref pages, ref pageType, ref oFalse, ref oTrue, ref oMissing, ref oFalse, ref oMissing, ref oMissing, ref oMissing, ref oMissing); 
+0

Haben Sie Einstellung versucht [oWord.ActivePrinter] (https://msdn.microsoft.com/en-us/library/office/ff821995.aspx)? – stuartd

+0

@stuartd: Ich habe das nicht versucht, aber das ist etwas, das auf mehreren Client-Computern arbeiten muss, und ich habe keine Möglichkeit, ihre Druckernamen zu kennen. Die Idee ist für meine Funktionalität, den Standarddrucker mit allen Standardoptionen zu verwenden. –

Antwort

0

Ich benutze dieses, es funktioniert ok für Word-Dokumente.

 Process p = new Process(); 
     p.StartInfo = new ProcessStartInfo(); 
     p.CreateNoWindow = true; 
     p.Verb = "print"; 
     p.FileName = file; 

     p.Start(); 
Verwandte Themen