2010-02-20 15 views
6

Mi programa necesita imprimir una curva, mi solución está cambiando la curva en una imagen, y este archivo de imagen (xxx.png) puede imprimirse usando la herramienta de impresión de imágenes predeterminada de Windows (haga clic con el botón derecho del mouse sobre el archivo, y seleccione imprimir).herramienta de línea de comandos para imprimir la imagen?

pero no quiero hacer este trabajo de usuario manualmente, necesito una herramienta de línea de comandos para hacer esto:

printPicture xxx.png 

¿hay una herramienta como esta?

PS: fuente libre/abierto

edición: Haga clic derecho en el archivo y seleccione "Imprimir", entonces puedo imprimir este archivo, ¿Cómo puedo hacerlo en la línea de comandos?

Respuesta

8

¡Finalmente lo descubrí!

use la imagen de Windows y el visor de fax.

rundll32 shimgvw.dll ImageView_PrintTo /pt xxx.png "printer name" 
+0

Cuidado, no puede dar ninguna opción con esta solución, y no puede cambiar las opciones predeterminadas (la imagen se ajustará a A4). – Jerry

7

IrfanView es capaz de hacer esto. Aquí hay una lista de command line options para esta aplicación.

La siguiente debe trabajo:

i_view32 xxx.png /print 

Si desea imprimir en una impresora otra que la impresora predeterminada, especifique el nombre de la impresora:

i_view32 xxx.png /print="PrinterName" 
+4

"entonces ..." ¿qué, exactamente? –

+3

Ha solicitado una herramienta de línea de comandos ... eso es lo que he publicado. Cómo lo usa en su aplicación depende de usted, usted es el desarrollador. –

+0

¡Esto es genial! irfanView guarda tus últimas opciones de impresión. Cuando lo llamas para imprimir una imagen a través de la línea de comando, usa las últimas opciones de impresión. Es perfecto. – Jerry

0

Puede llamar ShellExecute de su programa con print operación:

ShellExecute(NULL,"print","c:\\test.png",NULL,NULL,SW_HIDE); 
+0

¡OMG! hay un cmd de "impresión" ... – linjunhalida

+0

Uso "imprimir", pero el resultado es incorrecto ... – linjunhalida

+0

"imprimir" es solo para archivos TXT – MaxV

2

This link tenido una solución más simple:

mspaint/pt [nombre de archivo de imagen]

1

tuve un problema similar pero también necesitaba manera de controlar el escalamiento (necesario para el trabajo de código de barras) y siempre tienen la imagen centrada

Escribí una herramienta de código abierto llamada ImagePrint para hacer justo lo que quiera. Está escrito en VB.Net como una aplicación de consola. Por el momento, solo se imprime en la impresora predeterminada.

+0

Hola. Por favor, podrías actualizar tu enlace? – Jerry

2
rundll32 C:\WINDOWS\system32\shimgvw.dll,ImageView_PrintTo "c:\mydir\my.bmp" "Fictional HP Printer" 
1
rundll32 C:\WINDOWS\system32\shimgvw.dll,ImageView_PrintTo "c:\mydir\my.bmp" "Fictional HP Printer" 

Esto imprime un archivo de imagen (.png en mi caso) en una impresora especificada sin un cuadro de diálogo apareciendo. Además ... funciona sin privilegios de solicitud de comando elevados.

Cuestiones relacionadas