Imprimir desde un programa
[ Sistemas operativos / Linux ]



Uso habitualmente Linux y tengo que desarrollar una aplicación para imprimir graficos. En principio había pensado hacerlos generando un fichero PostScript que luego se envía a impresora, pero quería saber si hay alguna librería o alguna otra forma de hacer esto de forma "elegante".
Antonio Buitrago



Si el programa sólo es para sacar por impresora un fichero con un gráfico, como dices lo más facil es convertir a PostScript y mandar a la impresora. Si está instalado ImageMagick bastaría el siguiente guión:

#!/bin/sh convert $1 $1".ps" lpr -s $1".ps" rm $1".ps"

Si quieres que tu programa haga más cosas y tenga una interfaz gráfica, lo más adecuado es utilizar un toolkit que incluya opciones para imprimir. Es el caso de wxWindows, que permite escribir programas en C++ o Python multiplataforma (Windows, Unix/GTK+, Unix/Motif y próximamente Mac) y que cuenta con una clase para imprimir. Su licencia es la LGPL, de modo que se puede usar tanto en programas libres como propietarios. Tienes más información en www.wxwindows.org. También con Java puedes imprimir.

Otro caso es Qt, el toolkit con el que está escrito KDE, que también cuenta con una clase en la que se puede dibujar como en un Canvas sólo que en lugar de mostrarse por pantalla va a la impresora. Qt se puede usar desde C++ y desde varios lenguajes interpretados como Python y Perl. Su licencia es dual, GPL o QPL, pero ambas exigen que el programa que las use sea libre. Los programas propietarios tienen que pagar por una licencia especial.

En GNOME se cuenta con gnome-print, que es un sistema más sotisficado que permite múltiples posibilidades como previsualización, manejo de fuentes, etc. Obviamente también incluyen funciones para imprimir directamente una imagen. Son funciones de librería a las que se accede desde C. Su licencia es LGPL y por tanto puede usarse tanto en programas libres como propietarios. Encontrarás información en www.levien.com/gnome/print-arch.html, que además trae enlaces muy buenos a otras alternativas. También puedes ver el código fuente de programas que usan gnome-print como Gnumeric o Gedit. Si tienes una distribución que usa paquetes RPM podrás obtener la relación de programas que usan gnome-print mediante una orden similar a rpm -q --whatrequires gnome-print.

Otro enlace que quizás te interese sea http://gimp-print.sourceforge.net. Es un plug-in para imprimir imágenes desde The Gimp con resultados realmente impresionantes en temas como el color con las impresoras de calidad fotográfica que soporta. Incluye varios controles específicos para configurar la salida de la imágen que no encontrarás en otras alternativas por ser más genéricas en lugar de ir orientadas a imágenes. El problema es que al ser un plug-in, la integración en otro programa no es nada fácil.

Otra opción es mirar el código fuente de un programa como ee o el ejecutable display de Image Magick, aunque verás que realmente lo único que hacen es convertir y enviar a la impresora. Los textos son más complicados, sobre todo por el asunto de las fuentes, que no tienen por qué coincidir con las de las impresoras y porque hay que ajustar los tamaños de las páginas. Para ese caso una librería como gnome-print sí es casi imprescindible.






Anterior         Siguiente         





© 2002 VNU Business Publications España. Queda terminantemente prohibida su reproducción total o parcial por cualquier medio sin el permiso explicito y por escrito del propietario del copyright.