2010-06-29 9 views
5

Me gustaría imprimir cualquier documento como archivos de PDF, Word, Excel o texto en una impresora seleccionada utilizando .net. Tengo éxito en hacer esa impresión en la impresora predeterminada. El único problema ahora es imprimir en la impresora seleccionada.Cómo imprimir cualquier documento en una impresora SELECCIONADA

Aquí está el código para la impresión.

public bool Print(string FilePath) 
    { 
     if (File.Exists(FilePath)) { 
      if (ShellExecute((System.IntPtr)1, "Print", FilePath, "", Directory.GetDirectoryRoot(FilePath), SW_SHOWNORMAL).ToInt32() <= 32) { 
       return false; 
      } else { 
       return true; 
      } 
     } else { 
      return false; 
     } 
    } 

Respuesta

0

¿Qué formato de archivo está probando con éxito a la impresora predeterminada?

No es posible simplemente enviar "cualquier" documento a una impresora, generalmente el formato de archivo específico necesita ser interpretado por una aplicación que puede leer el formato de archivo y luego procesarlo en una impresora o un archivo que pueda ser interpretado por la impresora.

En la mayoría de los casos, si puede procesar en un PostScript o PDF puede obtener su impresión con un solo intérprete.

+0

estoy probando con PDFword y Excel files.You son correctas cualquier archivo no se puede imprimir, pero si está instalado el software de archivo que se puede imprimir sin especificar qué tipo de archivo que es manejado por is.It solo ventanas – Thunder

+0

El problema de imprimir el archivo ya está resuelto como se muestra en la pregunta. Solo queda el problema de especificar la impresora. – Thunder

+0

Hola, no, ¿cómo no especificar una impresora específica, pero podría valer la pena investigar cómo cambiar la impresora predeterminada antes de imprimir? –

8
Process printJob = new Process(); 
printJob.StartInfo.FileName = path; 
printJob.StartInfo.UseShellExecute = true; 
printJob.StartInfo.Verb = "printto"; 
printJob.StartInfo.CreateNoWindow = true; 
printJob.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
printJob.StartInfo.Arguments = "\"" + printerAddress + "\"" + " " + printerExtraParameters; 
printJob.StartInfo.WorkingDirectory = Path.GetDirectoryName(path); 
printJob.Start(); 
+0

Formateado como código para usted. Puede hacer lo mismo al responder seleccionando el texto a formatear y presionando el botón "101010 .." sobre la ventana de entrada. Hace que código como este sea mucho más fácil (leer: posible) para mirar. :) –

Cuestiones relacionadas