Espero que puedan ayudarme.
Estoy aprendiendo a utilizar la clase Print y no encuentro forma de hacer que la impresión salga automáticamente por la impresora default, siempre me abre el cuadro de dialogo para que seleccione la impresora
Armé un código de prueba para que sea mas simple la interpretación
Antes que nada un poco del entorno donde estoy trabajando como dicen las normas del foro:
Sistema Operativo: Fedora 18
Versión de Gambas:3.4.1
Entorno de Escritorio:GNOME
Componentes: gb, gb.form, gb.gui, gb.image
Error: La impresión no sale automáticamente por la impresora default, siempre abre el cuadro de dialogo de selección de impresoras
Public Sub Button1_Click()
If Not Printer1.Configure() Then
Printer1.Count = 1 'Define la cantidad de paginas a ase impresas
Printer1.FullPage = True
Printer1.Paper = Printer1.Custom
Printer1.PaperHeight = 100
Printer1.PaperWidth = 100
Printer1.Print
Endif
Me.Close
End
Public Sub Printer1_Draw()
Paint.MoveTo(5, 100) ' Define la posicion del texto que se va a imprimir
Paint.Font.Name = "Times New Roman" ' Font de letras utilizado
Paint.Font.Size = 20 '* (Desktop.Resolution / Printer1.Resolution) ' Tamaño de la letra
Paint.Text("Aguarde a ser llamado") ' Texto impreso
Paint.Fill '
Paint.MoveTo(15, 150) ' (X,Y) Define la posicion del texto que se va a imprimir
Paint.Font.Name = "Times New Roman" ' Font de letras utilizado
Paint.Font.Size = 40 '* (Desktop.Resolution / Printer1.Resolution) ' Tamaño de la letra
Paint.Text("TICKET") ' Texto impreso
Paint.Fill '
Paint.MoveTo(20, 200) ' (X,Y) Define la posicion del texto que se va a imprimir
Paint.Font.Name = "Times New Roman" ' Font de letras utilizado
Paint.Font.Size = 40 '* (Desktop.Resolution / Printer1.Resolution) ' Tamaño de la letra
Paint.Text("A 309") ' Texto impreso
Paint.Fill '
End
If Not Printer1.Configure() Then
Printer1.Count = 1 'Define la cantidad de paginas a ase impresas
Printer1.FullPage = True
Printer1.Paper = Printer1.Custom
Printer1.PaperHeight = 100
Printer1.PaperWidth = 100
Printer1.Print
Endif
Me.Close
End
Public Sub Printer1_Draw()
Paint.MoveTo(5, 100) ' Define la posicion del texto que se va a imprimir
Paint.Font.Name = "Times New Roman" ' Font de letras utilizado
Paint.Font.Size = 20 '* (Desktop.Resolution / Printer1.Resolution) ' Tamaño de la letra
Paint.Text("Aguarde a ser llamado") ' Texto impreso
Paint.Fill '
Paint.MoveTo(15, 150) ' (X,Y) Define la posicion del texto que se va a imprimir
Paint.Font.Name = "Times New Roman" ' Font de letras utilizado
Paint.Font.Size = 40 '* (Desktop.Resolution / Printer1.Resolution) ' Tamaño de la letra
Paint.Text("TICKET") ' Texto impreso
Paint.Fill '
Paint.MoveTo(20, 200) ' (X,Y) Define la posicion del texto que se va a imprimir
Paint.Font.Name = "Times New Roman" ' Font de letras utilizado
Paint.Font.Size = 40 '* (Desktop.Resolution / Printer1.Resolution) ' Tamaño de la letra
Paint.Text("A 309") ' Texto impreso
Paint.Fill '
End
En el formulario se inserto la clase Print y un botón solamente
Al pulsar sobre el botón sale el cuadro de dialogo de selección de impresoras del sistema operativo.
Obviamente si selecciono una impresora, la impresión sale pero no logro hacer 2 cosas
1) Que salga la impresión por la impresora default sin abrir el cuadro de dialogo.
2) Que ante la presencia de 2 impresoras pueda especificar por programa en cual impresora sacar la impresión
Desde ya, toda la ayuda que me puedan proporcionar se los voy a agradecer..
Saludos
Mariano