Fecha actual Sab Abr 20, 2024 7:43 am

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
NotaPublicado: Jue Oct 11, 2012 8:37 pm 
Avatar de Usuario

Registrado: Mar Oct 11, 2005 6:58 pm
Mensajes: 137
Ubicación: España
Haber si me podeis ayudar Con DrawBitmap(<Fichero>,<aPoints>)
ya que yo no consigo hacerlo funcionar:


Printer:Orientation := poPortrait
Printer:BeginDoc()
Printer:NewPage()
Printer:DrawBitmap( 'Cuplet.bmp'{ 10, 20, 40, 50 } )
Printer:EndDoc()
Printer:Print()

Un saludo a todos:

Fraguibo


Arriba
 Perfil  
Responder citando  
NotaPublicado: Vie Oct 12, 2012 11:23 am 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
Fraguibo escribió:
Haber si me podeis ayudar Con DrawBitmap(<Fichero>,<aPoints>)
ya que yo no consigo hacerlo funcionar:


Printer:Orientation := poPortrait
Printer:BeginDoc()
Printer:NewPage()
Printer:DrawBitmap( 'Cuplet.bmp'{ 10, 20, 40, 50 } )
Printer:EndDoc()
Printer:Print()

Un saludo a todos:

Fraguibo


Hola.

Esta es fácil, me la se.

oBitmap := TBitmap():Create()
oBitmap:FileName := ExtractFilePath( Application:ExeName ) + "Logo.bmp"

:DrawBitmap( oBitmap:Handle, { 10, 20, 40, 50 } )


...

oBitmap:Destroy()

En el primer parámetro, la función, espera el handle del bitmap y no el nombre o la ruta del mismo.

Salu2.

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Oct 12, 2012 5:52 pm 
Avatar de Usuario

Registrado: Mar Oct 11, 2005 6:58 pm
Mensajes: 137
Ubicación: España
Jesús:
Gracias por tu respuesta, pero la imagen que tengo que colocar es en color y aquí me sale en Blanco y Negro, esto es un defecto de la función DrawBitmap(<x>,<x>), o es algo que estoy haciendo mal.

Aquí te adjunto el código para que le eches un vistazo y perdona por las molestias que te estoy causando.

MethodImprimirFicha(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,;
x13,x14,x15,x16,x17,x18,x19,x20) Class TPrincipal

Local oBitmap

oBitmap:=TBitmap():Create()
oBitmap:MaskColor:=clOlive
oBitmap:FileName:=x19

// Montamos la ficha.
// ==================
Printer:Orientation:=poLandscape
Printer:BeginDoc()
Printer:NewPage()

// Recuadro de la ficha.
// ==============================
Printer:DrawBox({14,16,284,194})
Printer:DrawShadow({13,15,284,194})

// Cabecera de la ficha.
// =====================
PrintTexto('Número de Ficha'+Repli(' .',34),'Arial',22,.f.,;{26,20,230,34},TA_LEFT)
PrintTexto(StrZero(x1),'Arial',22,.f.,{230,20,274,34},TA_RIGHT)

// Linea de separación.
// ====================
Printer:DrawLine({16,32,282,32})
Printer:DrawShadow({15,32,281,32})

// Colocar la imagen.
// ==================
Printer:DrawBitmap(oBitmap:Handle,{16,40,84,148})

// Terminar de montar la ficha.
// ============================
Printer:EndDoc()
Printer:Preview()

// Imprimir la ficha.
// ==================
Printer:ShowDialog:=.T.
Printer:Print()

oBitmap:Destroy()

Return


Un saludo.

Fraguibo


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Oct 12, 2012 9:40 pm 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
Fraguibo escribió:
Jesús:
Gracias por tu respuesta, pero la imagen que tengo que colocar es en color y aquí me sale en Blanco y Negro, esto es un defecto de la función DrawBitmap(<x>,<x>), o es algo que estoy haciendo mal.

Aquí te adjunto el código para que le eches un vistazo y perdona por las molestias que te estoy causando.

MethodImprimirFicha(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,;
x13,x14,x15,x16,x17,x18,x19,x20) Class TPrincipal

Local oBitmap

oBitmap:=TBitmap():Create()
oBitmap:MaskColor:=clOlive
oBitmap:FileName:=x19

// Montamos la ficha.
// ==================
Printer:Orientation:=poLandscape
Printer:BeginDoc()
Printer:NewPage()

// Recuadro de la ficha.
// ==============================
Printer:DrawBox({14,16,284,194})
Printer:DrawShadow({13,15,284,194})

// Cabecera de la ficha.
// =====================
PrintTexto('Número de Ficha'+Repli(' .',34),'Arial',22,.f.,;{26,20,230,34},TA_LEFT)
PrintTexto(StrZero(x1),'Arial',22,.f.,{230,20,274,34},TA_RIGHT)

// Linea de separación.
// ====================
Printer:DrawLine({16,32,282,32})
Printer:DrawShadow({15,32,281,32})

// Colocar la imagen.
// ==================
Printer:DrawBitmap(oBitmap:Handle,{16,40,84,148})

// Terminar de montar la ficha.
// ============================
Printer:EndDoc()
Printer:Preview()

// Imprimir la ficha.
// ==================
Printer:ShowDialog:=.T.
Printer:Print()

oBitmap:Destroy()

Return


Un saludo.

Fraguibo


- En el preview de TPrinter ¿ también te sale en B/N?
- Otra posibilidad es que la imagen fuera de más de 24 bits.
- Si es al imprimir, las pruebas las haces con una impresora de color, ¿no?.

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Dom Oct 14, 2012 1:00 pm 
Avatar de Usuario

Registrado: Mar Oct 11, 2005 6:58 pm
Mensajes: 137
Ubicación: España
Hola Jesus:

Ya lo he resuelto, el problema estaba en que me sobraba la siguiente linea de codigo: <oBitmap:MaskColor:=clOlive>.

De todas formas seria muy interesante de que modificasemos la función <DrawBitmap(x,x)>, ya que solo admite ficheros <*.bmp> y seria muy probechoso de que por lo menos admitiese tambien los ficheros <*.jpg, *.jpge, *.jif y *.ico>, que son los más usuales que se usan.

Ya me diras que te parece la idea de modificar dicha función.

un saludo:
Fraguibo


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Jue Oct 18, 2012 6:57 pm 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
Fraguibo escribió:
Hola Jesus:

Ya lo he resuelto, el problema estaba en que me sobraba la siguiente linea de codigo: <oBitmap:MaskColor:=clOlive>.

De todas formas seria muy interesante de que modificasemos la función <DrawBitmap(x,x)>, ya que solo admite ficheros <*.bmp> y seria muy probechoso de que por lo menos admitiese tambien los ficheros <*.jpg, *.jpge, *.jif y *.ico>, que son los más usuales que se usan.

Ya me diras que te parece la idea de modificar dicha función.

un saludo:
Fraguibo


Hola, Fraguibo.

Te cuento, modificar, lo que se dice modificar, va a ser que no, ¿o tu dispones del código fuente de la clase TPrinter?.

Lo que yo hago es convertir en tiempo de ejecución al archivo de imagen a BMP, y de esta forma ya lo puedo tratar.
Esta es la única forma que tenemos de acceder a otros formatos, también cabría la posibilidad de escribir DESDE 0 la clase TPrinter, pero esto ya es 'otro cantar'.

salu2.

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 6 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
cron