Esto parece una necesidad tan simple, pero por alguna razón no puedo encontrar cómo puedo lograr esto. Tengo un código como este:Cómo imprimir un docx a una impresora específica usando Microsoft.Office.Interop.Word.Document.PrintOut()
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
MemoryStream documentStream = getDocStream();
FileInfo wordFile = new FileInfo("c:\\test.docx");
object fileObject = wordFile.FullName;
object oMissing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.Document doc = wordInstance.Documents.Open(ref fileObject, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
doc.Activate();
doc.PrintOut(oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
Necesito tener un controlador de configuración que impresora y bandeja se utilizan. Después de buscar encontré Microsoft.Office.Interop.Word.Application.ActivePrinter que es una propiedad de cadena configurable que según la documentación lleva "el nombre de la impresora activa", pero no sé lo que significa para una impresora para el la "Impresora activa", especialmente cuando tengo dos de ellos. ¿Cómo se puede lograr esto?
interesante, bien si no hay manera entonces que así sea, cambiarlo de ida y vuelta es factible. ¿Qué hay de especificar la fuente de papel? Además, ¿por qué dormir? ¿No hay forma de estar seguro de que la ejecución puede continuar de forma segura? ¿Qué pasa si los quitas? – andrew
Fuente de papel: necesito ver eso (verifique más tarde). El tiempo de espera? Porque no es una llamada (suficientemente) bloqueada y no ocurre/se actualiza automáticamente. – payo
Para especificar bandejas de papel, tiene que hacerse en el archivo docx (lo que significa insertarlo "a mano" de alguna manera, preferiblemente utilizando las API de empaquetado para obtener el archivo document.xml y buscar los comandos de la bandeja de papel) - que se obtiene guardando un documento de Word que los tiene configurados, y se aplica solo a una impresora específica). Recomiendo hacerlo manualmente a través de palabras, luego inspeccionar los # después. – payo