Alineación para imprimir...

Espero
Que bien.
Bueno mi consulta es la siguiente :
Estoy imprimiendo (a papel) los datos de una grilla con las sgtes instruc..
********************
.Col = 7 'es un Valor
Printer.CurrentY = 3
Printer.CurrentX = 15
Printer.Print " " & .Text & " "
******************
He usado el LeftToright pero no funciona, y me gustaría saber como alinear a la derecha ya que el resultado aparece
así :
-------------------------------
Valor
-------------------------------
66,300
199,600
Y debiera ser así
-------------------------------
Valor
-------------------------------
66,300
199,600
(Los valores están expresado en miles)
Desde ya gracias..
Si puedes enviarme un ejemplo seria muy bueno...
He probado con el format y con "@@@@@@"
Pero tampoco me funciona
Printer. Print "" & format(.text,"@@@@@@@@@@")
**************************************
Otra consulta al respecto... Sabes como puedo imprimir en una Matriz de punto, pero con letra normal, NO que haga doble pasada sino que imprima letra normal como en D.O.S.
Y que cuando imprima otro usuario a continuación la impresora vuelva a su config. Original...

2 respuestas

Respuesta
1
¿Has probado con el format?.
Printer. print "" & format(.text,"@@@@@@@@@@")
Haber si te funciona.
Sabes que no funcionó lo que me enviaste. Lo probé de varias formas, pero no me resulta.
Otra consulta al respecto... sabes como puedo imprimir en una Matriz de punto, pero con letra normal, NO que haga doble pasada sino que imprima letra normal como en D.O.S.
Y que cuando imprima otro usuario la impresora vuelva a su config. Original...
Gracias...
Ya es raro, a mi si que me funciona. Si quieres con separador de miles.
printer.print "" & format(format(.text,"#,##0.00"),"@@@@@@@@@@@@")
En cuanto a la impresora pon la cualizad a borrador desde las propiedades de la impresora o prueba con printer.quality = 0
Para la letra en negrita que tambien hace que haga dos pasadas, printer.fontbold=false
Sabes que no me funcionó, usé el format,
el "@@@@@@", "###,###" y no lo alinea...,,,,aparece centrado y otros a la izquierda...
tampoco funciona el
printer.printQuality = -1 (borrador)
Respecto a la Impresora "Matriz" de Punto, la letra aparece grande y siempre da doble pasada aunque le coloque Fontbold=false, y
fontname = "courier", cómo lo puedo hacer para que comprima la letra a 17 ó 20 para imprimir hasta un ancho de 132 caracteres, osea, imprimir como se hacia antes en D.O.S.
La idea es, por Ejemplo : si tengo un archivo ".txt" y desde el "D.O.S." le doy un "type archivo.txt > lpt1" y la impresora esta comprimida "manualmente" imprime rapido, eso es lo que quiero desde Visual Basic.
Desde ya gracias...
Que tengas un buen día...
Pon la fuente más pequeña y te entrarán más caracteres.
printer.fontsize=6
Comprueba en la bios que la impresora este en epp+ecp o algo así era.
Respuesta
1
Pra lo primero prueba con esto:
'------------- Fuente de tamaño variable ----------
Dim x As Integer
Dim y As Integer
' Fila Inicial
Printer.CurrentY = 0
Printer.Font.Name = "Times New Roman"
Printer.Font.Size = 6
' Longitud de cadena máxima
x = Printer.TextWidth("999,999.99")
' Longitud de cadena a imprimir
y = Printer.TextWidth(Format(12938.89, "###,##0.00"))
' Calculo de la posicion inicial (Columna)
Printer.CurrentX = (x - y)
' Imprime 1era. Fila
Printer.Print Format(12938.89, "###,##0.00")
' Longitud de cadena a imprimir
y = Printer.TextWidth(Format(938.89, "###,##0.00"))
' Calculo de la posicion inicial (Columna)
Printer.CurrentX = (x - y)
' Imprime 2da. Fila
Printer.Print Format(938.89, "###,##0.00")
Printer.Font.Size = 24
x = Printer.TextWidth("999,999.99")
y = Printer.TextWidth(Format(12938.89, "###,##0.00"))
Printer.CurrentX = (x - y)
Printer.Print Format(12938.89, "###,##0.00")
y = Printer.TextWidth(Format(938.89, "###,##0.00"))
Printer.CurrentX = (x - y)
Printer.Print Format(938.89, "###,##0.00")
'------------- Fuente de tamaño fijo ----------
Printer.Font.Name = "Courier New"
Printer.Font.Size = 6
' Imprime Filas
Printer.Print Format(Format(12938.89, "###,##0.00"), "@@@@@@@@@@")
Printer.Print Format(Format(938.89, "###,##0.00"), "@@@@@@@@@@")
Printer.Font.Size = 24
' Imprime Filas
Printer.Print Format(Format(12938.89, "###,##0.00"), "@@@@@@@@@@")
Printer.Print Format(Format(938.89, "###,##0.00"), "@@@@@@@@@@")
Printer. EndDoc
Para lo segundo:
Utiliza letra de Courier o Courier News y en modo draf la impresora.
Saludos
Roberto Alvarado
Cartagena - Colombia
Sabes que no me funcionó, usé el format,
el "@@@@@@", "###,###" y no lo alinea...
Aparece centrado y otros a la izquierda...
Respecto a la Impresora "Matriz" de Punto, la letra aparece grande y siempre da doble pasada aunque le coloque Fontbold=false, y
fontname = "courier", cómo lo puedo hacer para que comprima la letra a 17 ó 20 para imprimir hasta un ancho de 132 caracteres, osea, imprimir como se hacia antes en D.O.S.
La idea es, por Ejemplo : si tengo un archivo ".txt" y desde el "D.O.S." le doy un "type archivo.txt > lpt1" y la impresora esta comprimida "manualmente" imprime rapido, eso es lo que quiero desde Visual Basic.
Desde ya gracias...
Que tengas un buen día...
Ponle al font que vas a enviar a la impresora el tamaño 8 0 9 dependiendo y te lo comprime.
Lo otro la verdad no estoy muy seguro, dejame ver si encuentro algo y te aviso...
Saludos
Roberto Alvarado
Cartagena - Colombia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas