Resumen Alinear con el objeto printer

Saludos

Hola a continuacion te envio el procedimiento que utilizo para imprimir
LA linea siguiente es la que hace que se queden ajustados a la derecha los
numeros

   Printer.CurrentX = nX - Printer.TextWidth(Aimprimir)

Puedes probar a utilizar la mascara "@" que sustituye la mascara por
espacios vacios
en el caso de que no exista caracter. Pero da mejor resultado la linea que
te he indicado anteriormente.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXX


Sub imprimir(nY As Integer, nX As Integer, Aimprimir, tamano As Integer,
Negrita As String, Subrayado As String) ', formato As String)
' nX y nY ' Posiciona el cabezal mediante currentx y currenty
' Aimprimir : texto o numeros a imprimir
' tamaņo: tamaņo de la fuente en que quiere imprimir
' negrita y subrayado: si tienen el valor "n" o "s" imprime en negrita o
subrayado



Printer.FontSize = tamano

' a continuacion se comprueba si la variable Negrita o subrayado es igual a "n"
' lo comprueba en las dos para no tener qeu recordad cual es la de negrita
si la primera o
' la segunda


If "N" = UCase(Negrita) Or "N" = UCase(Subrayado) Then
  Printer.FontBold = True
 Else: Printer.FontBold = False
End If

If "S" = UCase(Negrita) Or "S" = UCase(Subrayado) Then
  Printer.FontUnderline = True
Else
 Printer.FontUnderline = False
End If

' si es numerico se ajusta a la derecha de la posicion nx
' si es cadena de texto se ajusta a la derecha de la posicion nx

If IsNumeric(Aimprimir) Then
   Printer.CurrentX = nX - Printer.TextWidth(Aimprimir)
  Else
   Printer.CurrentX = nX
End If

   Printer.CurrentY = nY

   Printer.Print Aimprimir


End Sub

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
Espero que te sea de utilidad

Saludos desde la tierra de Cervantes





At 09:59 23/04/97 +0100, you wrote:
>> Hola a todos,
>>
>> Tengo 2 preguntas que formular, a ver si alguien puede despejar mis
>> dudas:
>>
>> 1.- Tengo unos listados con el objeto printer que segun la impresora
>> me cambia las coordenadas, es decir, yo ulo el tipo de escala 6 (en
>> milimetros) y voy poniendo las coordenadas de la fila y la columna
>> que deseo que se imprima, pues no se imprime en el mismo sitio si
>> cambio de impresora, es como si cada impresora tubiera una regla de
>> medir distinta, vamos que le dices que imprima a los 35 milimetros y
>> una te lo imprime a los 31, y otra a los 39, con lo cual en algunos
>> listados muy apretados, eso me destr
>Esto es debido a diferencias en los margenes minimos de impresion.
>Yo no lo he hecho nunca, pero tienes que usar la
>funcion del API GetDeviceCaps() para averiguarlos, y restarlo de la
>posicisn en que quieres imprimir.
>
>2.- Alguien sabe como alinear a
>> la derecha con el printer ???. me refiero a que si le dices que
>> imprima numeros como le puedo decir que esten alineados: 123123 234
>> 2 23453 345345345 esto es como me sale ahora, pero como es logico,
>> me gustaria tenerlos alineados a la derecha.
>
>Si. Usa el Mitodo TextWidth() para averiguar el ancho del texto en la
>impresora y restalo de la posicisn currentX (?o es CurrentY?)
>
>
>
>
>
>---------------------------------------------------------------------
> Alberto Rodriguez Calvo (cttarc@usc.es)
>
> Paxina Web do CTT: http://www.usc.es/ctt
> Centro de Transferencia de Tecnoloxia
> Universidade de Santiago de Compostela Tfno (9)81 599800
> Avda. Ciencias s/n, Campus Sur (9)81 563100 Ext 4341
> 15706 Santiago de Compostela (A Corunha) Fax (9)81 599309
> Espanha
>---------------------------------------------------------------------
>
>
Jose Luis Garcia
http://www.arrakis.es/~peli



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com