Impresión vb 6.0

Mi problema es que quiero imprimir con Printer una imagen que esta en mi base de datos y no lo he logrado con el loadpicture, de que otra forma lo podría hacer.

1 Respuesta

Respuesta
1
Y si estas viendo la imagen en el control que tienes en tu forma...
Mi base de datos esta en mysql
No veo la imagen, por que solo lo mando a la impresora, tengo que mandar esto desde una dll...
Por ahora estoy probando fuera de la dll.. pero me marca un error, este es mi código:
----------------------------------------
Dim indice, texto
Dim rsmulti As ADODB.Recordset, cmdmulti As ADODB.Command 'consulta a la tabla multimedia
Dim Imagen1 As Image
Dim Stream As ADODB.Stream
Set cnn = New ADODB.Connection
Set cmdmulti = New ADODB.Command
' Nuevo objeto Stream para poder leer el campo de imagen
Set Stream = New ADODB.Stream
conexion
'If cnn.State = 1 Then cnn.Close
cnn.Open
For indice = 0 To Printers.Count - 1
Set Printer = Printers(indice) 'Nombre del dispositivo.
texto = Printer.DeviceName
If texto = "taquilla" Then 'Orden de imprimir dentro del if.
With Printer
.ScaleWidth = 7400
' Especifica el tipo de datos ( binario )
Stream.Type = adTypeBinary
Stream.Open
With cmdmulti
Set .ActiveConnection = cnn
.CommandText = "select * from multimedia_taquilla where cla_multi='3'" ' and descripcion_multi='boleto' and posicion_multi='TODOS'"
.CommandType = adCmdText
Set rsmulti = .Execute()
End With
Stream.Write rsmulti.Fields("rsmulti!archivo_multi").Value
' este método graba un archivo temporal en disco _
( en el app.path que luego se elimina )
Stream.SaveToFile App.Path & "\temp", adSaveCreateOverWrite
.PaintPicture LoadPicture(App.Path & "\temp"), 100, 100, 5000, 2500
.ScaleHeight = 17100
.EndDoc
End With
End If
Next
-------------------------------------
Gracias
Y cual es el nombre del archivo en forma temporal, se me hace que eso es lo que falta y tampoco me dijiste que error te manda... Este tipo de código es similar a uno que tengo implementando y funciona de forma correcta...
El error es
"Error 3265.. No se encontró el elemento en la colección..."
¿En dónde se supone que le estoy indicando el archivo en forma temporal?
Gracias, por responder... en realidad debo sacar esto hoy :S
Aquí debes de indicar el nombre:
Este método graba un archivo temporal en disco _
( en el app. Path que luego se elimina )
Stream.SaveToFile App.Path & "\temp", adSaveCreateOverWrite
.PaintPicture LoadPicture(App.Path & "\temp"), 100, 100, 5000, 2500
.ScaleHeight = 17100
.EndDoc
End With
Apurate porque estoy a unos minutos de irme de mi trabajo a descansar y hasta mañana me pongo en contacto...
O sea le pongo c:/mis documentos...¿?
En lugar de App.path
¿Perdón en donde dice "\temp" ese lo cambio?
Me marca error aquí:
Stream.Write rsmulti.Fields("rsmulti!archivo_multi").Value
El error es el que le digo---
Gracias por su ayuda.
Ahora tengo otro problema.. quiero imprimir un código de barras de forma vertical.
Lo debo hacer con printer, alguna sugerencia, supongamos que ya tengo la fuente.. como le puedo hacer.
Saludos.
Pues solamente que inviertas las posiciones, no lo he hecho pero porque no ves las aplicaciones que tienes disponibles en:
Gracias, se me olvido que le había preguntado, lo resolví moviendo un opción en las propiedades de la impresora, pero muchas gracias por su ayuda ;-)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas