border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 19-01-2005, 16:20:54
Un Nuevo Amigo
 
Registrado: ene 2005
Posts: 10
SilAng Valoración +2
Predeterminado Margenes de la Impresora

:-D Hola a todos!

Tengo que imprimir un texto por distintas impresoras, que por supuesto tienen configurados distintos margenes por defecto. Yo quiero que en todos salga el mismo margen, asi que mi pregunta es:

¿¿¿¿¿ Como puedo leer los margenes que tiene configurada la impresora ????

Si alguien puede ayudarme muchas gracias desde ya

Un saludo

Silvia
Responder Con Cita
  #2 (permalink)  
Antiguo 19-01-2005, 17:54:31
Gran Participación en el Foro
 
Registrado: oct 2003
Posts: 119
Vbasic_fanatic Valoración +2
Contactar con Vbasic_fanatic a través de Yahoo
Predeterminado una sugerencia

Yo pienso que ta falta dar un poco mas de informacion :
imprimes un texto, pero como le das salida ?
por el objeto printer?
por el commondialog?
o por la api de windows

si el por el objeto printer , el mismo tiene una serie de propiedades que lo puedes hacer
si es por el commondialog tambien
si es por la api aqui tienes algo:

el problema no es nada facil de resolver ya que tienes que someterte a ir a la API DE WINDOWS y remitirte a sus funciones especificas para ese caso, pero no importa aqui te muestro algo.



ESTAS SON FUNCIONES DE LA API NECESARIAS PARA LO QUE QUIERES

Private Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As Any) As Long
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Private Declare Function PrinterProperties Lib "winspool.drv" (ByVal hwnd As Long, ByVal hPrinter As Long) As Long

' un pequeño ejemplo

Private Sub Form_Load()
Dim hPrinter As Long
OpenPrinter Printer.DeviceName, hPrinter, ByVal 0&
PrinterProperties Me.hwnd, hPrinter
ClosePrinter hPrinter
End Sub


saludos.
Responder Con Cita
  #3 (permalink)  
Antiguo 20-01-2005, 07:55:41
Un Nuevo Amigo
 
Registrado: ene 2005
Posts: 10
SilAng Valoración +2
Predeterminado

ops: Perdón por la falta de información. Con lo que estoy imprimiendo es con un objeto printer. El problema esta que al configurar los margenes con CurrentX y CurrentY no le puedo dar un valor fijo porque varia dependiendo de la impresora por la que imprima.


Voy a probar la API que me has puesto a ver si funciona.

Muchas gracias

Un saludo

Silvia
Responder Con Cita
  #4 (permalink)  
Antiguo 20-01-2005, 10:35:05
Un Nuevo Amigo
 
Registrado: ene 2005
Posts: 10
SilAng Valoración +2
Predeterminado Margenes de la impresora

:grin:
Bueno a ver si esta vez me explico mejor.

Mi problema es que estoy imprimiendo un listado con el objeto Printer en un A4 y tengo que imprimirlo por distintas impresora, con margenes predefinidos distintos. Yo quiero que el texto empiece en todas en la misma posicion a 12 mm del borde y no se como hacerlo.

He probado lo siguiente, cojo el tamaño de la pagina y le resto la tamaño de la zona de impresion.

PosicionX = Round(12 - (297 - Printer.ScaleWidth))

Esto me da los margenes de cada lado de la hoja sumados, pero yo los quiero por separado, y no me vale dividirlos entre dos porque no son iguales.

¿¿Alguien sabe como puedo solucionar esto???????????

Por favor!!!!!!!!!!!!!!!!!


Un saludo y gracias

Silvia
Responder Con Cita
  #5 (permalink)  
Antiguo 20-01-2005, 13:37:47
Gran Participación en el Foro
 
Registrado: oct 2003
Posts: 119
Vbasic_fanatic Valoración +2
Contactar con Vbasic_fanatic a través de Yahoo
Predeterminado haber empezado por ahi

ah bueno entonces la cosa es mas sencilla ahora

solo lo que tienes que cambiar es el currentx

Printer.ScaleMode = 6 ' de esta forma lo defines en mm
Printer.CurrentX = 12
Printer.Print "ESTO ES UNA PRUEBA"
Printer.EndDoc


de esta forma solucionas el problema


cuando escojas la otra impresora debes definir

Printer.ScaleMode = 6

el cual le dices que es en milimetros para esa impresora tambien y funciona con el currentx.

Lo probe y funciona correctamente.

Saludos
Responder Con Cita
  #6 (permalink)  
Antiguo 24-01-2005, 10:58:25
Un Nuevo Amigo
 
Registrado: ene 2005
Posts: 10
SilAng Valoración +2
Predeterminado

Gracias por contestar, pero eso no me soluciona el problema.

Ya habia probado a poner CurrentX a 12 pero me imprime el texto a 12 mm del margen establecido de la impresora pero no a 12 mm del borde del papel.

Estoy probando con una API "GetDeviceCaps" que parece que funciona pero no consigo exactamente el tamaño de los margenes.

No se seguire probando, muchas gracias
Responder Con Cita
  #7 (permalink)  
Antiguo 24-01-2005, 18:11:31
Gran Participación en el Foro
 
Registrado: oct 2003
Posts: 119
Vbasic_fanatic Valoración +2
Contactar con Vbasic_fanatic a través de Yahoo
Predeterminado debe ser un error no conocido

pero debe ser a 12 mm del papel , sino es asi hay algun otro problema desconocido, lo he probado en varias maquinas y funciona.

saludos.
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Agregar o quitar margenes impresion con Printer Eber Visual Basic 6.00 1 29-08-2007 06:17:39
Problemas con los margenes al cambiar de impresora. bubu_54 Crystal Reports 4 28-08-2007 09:33:48
Margenes a DataReport para imprimir en Factura tanya1 Visual Basic 6.00 9 20-08-2007 23:35:58
MARGENES DATAREPORT torn_mx DataReports 0 10-08-2007 23:46:06
Margenes Informe totxon VBA (Excel, Word, Outlook, Access) 7 17-09-2004 01:00:00


La franja horaria es GMT. Ahora son las 00:22:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right