Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



Mostrando entradas con la etiqueta imprimir. Mostrar todas las entradas
Mostrando entradas con la etiqueta imprimir. Mostrar todas las entradas

miércoles, 15 de abril de 2015

El objeto Printer: imprimir una imagen y texto por tu impresora


El objeto Printer:

 imprimir una imagen y texto por tu impresora


Uno de los métodos para imprimir en gambas3, es el uso del objeto printer. Para escribir o dibujar algo y luego impirmirlo, usamos el objeto printer  usa como si fuera un "drawingArea", y dibujamos (en las dimensiones del papel A4 o el que tengamos definido), indicando brocha que usamos y coordenadas.

Os dejo un simple ejemplo donde se dibuja una imagen y un texto.


Código:
' Gambas class file

Public Sub _new()

End

Public Sub Form_Open()

TextArea1.text = "Hola que tal me llamo julio y soy esto es una prueba de impresion con el objeto printer de gambas3. Es una prueba para redactar informes e imprimirlos"
TextArea1.text &= gb.crlf & "salto de " & gb.CrLf & " linea"
Label1.text = "Impresora:" & Printer1.name

End

Public Sub ButtonImprimir_Click()

Me.Enabled = False
Inc Application.Busy
Printer1.Print
Dec Application.Busy
Me.Enabled = True

End

Public Sub Printer1_Draw()

Dim PRINT_MARGIN As Float = Paint.Width / Printer1.PaperWidth * 10
Dim docV As String
Dim hImg As Image

docV = TextArea1.Text 'texto a escribir

'dibujo una imagen
hImg = Image.Load("duck1.png")
Paint.Brush = Paint.Image(hImg, 0, 0)
Paint.Rectangle(0, 0, hImg.Width, hImg.Height)
Paint.Fill()

'escribo el texto...
paint.brush = Paint.Image(Image.Load("recuadronegro.png"), 0, 0)
Paint.Font = Font["Courier"]
Paint.DrawRichText(docV, PRINT_MARGIN + hImg.width, PRINT_MARGIN - (Printer1.Page - 1) * (Paint.Height - PRINT_MARGIN * 2), Paint.Width - PRINT_MARGIN * 2 - hImg.Width, Paint.Height * Printer1.Count, Align.TopNormal)
Paint.Stroke


End

Enlace del código fuente: alojado en google code

Saludos





sábado, 13 de septiembre de 2014

Herramienta para cálculos dimensiones de impresión según la resolución de una imagen

Herramienta para cálculos dimensiones de impresión según la resolución de una imagen

"necesito calcular el ancho y alto de una imagen a milímetros": A partir de esta pregunta, en el foro de gambas-es.org (ver enlace 1), estuvimos hablando sobre el tema. Jesus Guardón, dió varios enlaces donde explicaban las fórmulas para hacer las conversiones ( http://www.fmedda.com/es/article/dpi_ppi ).





Un ejemplo:
Calcular las dimensiones en pixeles de una imagen, que queremos imprimir en un poster de tamaño 90x60cm y con un mínimo de 150 PPI.




De esta descripción, se puede calcular que el tamaño de la fotografía digital debe añadirse por lo menos hasta 5315x3543 Pixeles (~18,8 MegaPixeles):



Me me hecho esta pequeña calculadora  que hace los cálculos automáticamente, en los dos sentidos:
-sabiendo las dimensiones del papel y los ppi, calcular los pixeles que tiene que tener la imagen
-sabiendo los pixiles que tiene la imagen y los ppi que queremos imprimir, calcular la dimension del papel.




Enlace de descarga: alojado en google drive




Fuentes:
http://www.gambas-es.org/viewtopic.php?f=1&p=22657#p22657
http://www.fmedda.com/es/article/dpi_ppi

Herramientas usadas:
gambas3
latex como editor de fórmula
libreoffice math

Nota:
Formula expresada para latex:
px=\frac {DimensionPapel(cm) * PPI (\frac {px}{Inch})} {2.54  (\frac {cm}{Inch})}
Formula expresada para libreoffice math:
{ DimensiónPapel (cm) * PPI ({px} over {Inch}) } over {2,54  ({cm} over {Inch})} = {px}