Font Metrics

03/02/2005 - 23:23 por Vazquez | Informe spam
Tengo una aplicación que debe imprimir un ticket al finalizar la compra
El problema esque estoy tratando de separar cada linea en 4 columnas, por
ejemplo
1 Nieve Vainilla 8.00 8.00
3 Papas 7.50 22.50

El problema esque cuando pongo cada renglon en un String (el renglon se
obtiene de unas columnas de un spread), no me acepta el vbTab, por lo que
tuve que hacer un función que me diera esta separación por medio de
espacios. Ahora el problema esque dependiendo del tipo de letra me da una
diferente identación.

Alguién tiene una forma correcta de hacer esto..
Anexo el codigo


For i As Integer = 0 To .RowCount - 1
linea = tabula(.Cells(i, 0).Text.Trim, .Cells(i, 1).Text.Trim, .Cells(i,
2).Text.Trim, .Cells(i, 3).Text.Trim)
Posy = (topMargin + (count * (printFont.GetHeight(e.Graphics))))
e.Graphics.DrawString(linea, printFont, myBrush, leftMargin, Posy, New
StringFormat(StringFormatFlags.DisplayFormatControl))
count += 1
linea = ""
Next


Private Function tabula(ByVal cant As String, ByVal art As String, ByVal
unit As String, ByVal importe As String) As String
If cant.Length < 2 Then
cant = " " & cant
End If

While art.Length < 25
art = art & " "
End While

While unit.Length < 7
unit = " " & unit
End While

While importe.Length < 7
importe = " " & importe
End While

Return cant & " " & art & unit & importe
End Function

C Vázquez
 

Leer las respuestas

#1 Jorge Serrano [MVP VB]
04/02/2005 - 17:53 | Informe spam
Hola,

¿has probado con Courier New?. Creo recordar que hay una fuente de letra que
te permite no perder el espacio que indicas, y no recuerdo bien si es esta.
Por probar...

Un saludo,

Jorge Serrano Pérez
MVP VB.NET


"Vazquez" wrote:

Tengo una aplicación que debe imprimir un ticket al finalizar la compra
El problema esque estoy tratando de separar cada linea en 4 columnas, por
ejemplo
1 Nieve Vainilla 8.00 8.00
3 Papas 7.50 22.50

El problema esque cuando pongo cada renglon en un String (el renglon se
obtiene de unas columnas de un spread), no me acepta el vbTab, por lo que
tuve que hacer un función que me diera esta separación por medio de
espacios. Ahora el problema esque dependiendo del tipo de letra me da una
diferente identación.

Alguién tiene una forma correcta de hacer esto..
Anexo el codigo


For i As Integer = 0 To .RowCount - 1
linea = tabula(.Cells(i, 0).Text.Trim, .Cells(i, 1).Text.Trim, .Cells(i,
2).Text.Trim, .Cells(i, 3).Text.Trim)
Posy = (topMargin + (count * (printFont.GetHeight(e.Graphics))))
e.Graphics.DrawString(linea, printFont, myBrush, leftMargin, Posy, New
StringFormat(StringFormatFlags.DisplayFormatControl))
count += 1
linea = ""
Next


Private Function tabula(ByVal cant As String, ByVal art As String, ByVal
unit As String, ByVal importe As String) As String
If cant.Length < 2 Then
cant = " " & cant
End If

While art.Length < 25
art = art & " "
End While

While unit.Length < 7
unit = " " & unit
End While

While importe.Length < 7
importe = " " & importe
End While

Return cant & " " & art & unit & importe
End Function

C Vázquez




Preguntas similares