Código de Visual Basic - Jusitificar impresion

Imágen de perfil

Jusitificar impresiongráfica de visualizaciones


Visual Basic

Publicado el 22 de Enero del 2003 por Xavi
14.541 visualizaciones desde el 22 de Enero del 2003. Una media de 21 por semana
Función que muestra como imprimir de forma justificada un campo Memo de Access.

Versión 1

Publicado el 22 de Enero del 2003gráfica de visualizaciones de la versión: Versión 1
14.542 visualizaciones desde el 22 de Enero del 2003. Una media de 21 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Sub justifica_printer(x0, xf, y0, txt)
    ' x0, xf = posicion de los margenes izquierdo y derecho
    ' y0 = posicion vertical donde se desea empezar a escribir
    ' txt = texto a escribir
 
    Dim x, y, k, ancho
    Dim s As String, ss As String
    Dim x_spc
 
    s = txt
    x = x0
    y = y0
    ancho = (xf - x0)
 
    While s <> ""
        ss = ""
        While (s <> "") And (Printer.TextWidth(ss) <= ancho)
            ss = ss & Left$(s, 1)
            s = Right$(s, Len(s) - 1)
        Wend
        If (Printer.TextWidth(ss) > ancho) Then
            s = Right$(ss, 1) & s
            ss = Left$(ss, Len(ss) - 1)
        End If
        ' aqui tenemos en ss lo maximo que cabe en una linea
        If Right$(ss, 1) = " " Then
            ss = Left$(ss, Len(ss) - 1)
        Else
            If (InStr(ss, " ") > 0) And (Left$(s & " ", 1) <> " ") Then
                While Right$(ss, 1) <> " "
                    s = Right$(ss, 1) & s
                    ss = Left$(ss, Len(ss) - 1)
                Wend
                ss = Left$(ss, Len(ss) - 1)
            End If
        End If
        x_spc = 0
        x = x0
        If (Len(ss) > 1) And (s & "" <> "") Then
            x_spc = (ancho - Printer.TextWidth(ss)) / (Len(ss) - 1)
        End If
        Printer.CurrentX = x
        Printer.CurrentY = y
 
        If x_spc = 0 Then
            Printer.Print ss;
        Else
            For k = 1 To Len(ss)
                Printer.CurrentX = x
                Printer.Print Mid$(ss, k, 1);
                x = x + Printer.TextWidth("*" & Mid$(ss, k, 1) & "*") - Printer.TextWidth("**")
                x = x + x_spc
            Next
        End If
 
        y = y + Printer.TextHeight(ss)
        While Left$(s, 1) = " "
            s = Right$(s, Len(s) - 1)
        Wend
    Wend
End Sub



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s492