Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/06/2013, 19:45
lccrhn
 
Fecha de Ingreso: abril-2012
Mensajes: 7
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Solo imprimir una parte

Private Sub DocumentoAImprimir_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles DocumentoAImprimir.PrintPage

e.Graphics.PageUnit = GraphicsUnit.Millimeter

gfx = e.Graphics
fx = e




Dibujatitulo()

DibujaLaCabecera()

DibujaLaSubCabecera()

DibujaElementos()


DibujaTotales()
DibujarPieDePagina()


End Sub

Private Function Renglon() As Double
Return MargenSuperior + (contador * FuenteImpresa.GetHeight(gfx) + imageHeight)
End Function


Private Sub Dibujatitulo()

For Each Cabecera As String In LineasDeLatitulo

If (Cabecera.Length > MaximoCaracter()) Then

Dim CaracterActual As Integer = 0
Dim LongitudDeCabecera As Integer = Cabecera.Length

While (LongitudDeCabecera > MaximoCaracter())

CadenaPorEscribirEnLinea = Cabecera.Substring(CaracterActual, MaximoCaracter)
gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
contador += 1
CaracterActual += MaximoCaracter()
LongitudDeCabecera -= MaximoCaracter()
End While
CadenaPorEscribirEnLinea = Cabecera
gfx.DrawString(CadenaPorEscribirEnLinea.Substring( CaracterActual, CadenaPorEscribirEnLinea.Length - CaracterActual), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
contador += 1

Else


CadenaPorEscribirEnLinea = Cabecera
gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa2, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
End If
Next Cabecera

End Sub


Private Sub DibujaLaCabecera()

For Each Cabecera As String In LineasDeLaCabeza

If (Cabecera.Length > MaximoCaracter()) Then

Dim CaracterActual As Integer = 0
Dim LongitudDeCabecera As Integer = Cabecera.Length

While (LongitudDeCabecera > 60)

CadenaPorEscribirEnLinea = Cabecera.Substring(CaracterActual, MaximoCaracter)
gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
contador += 1
CaracterActual += MaximoCaracter()
LongitudDeCabecera -= MaximoCaracter()
End While
CadenaPorEscribirEnLinea = Cabecera
gfx.DrawString(CadenaPorEscribirEnLinea.Substring( CaracterActual, CadenaPorEscribirEnLinea.Length - CaracterActual), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
contador += 1

Else


CadenaPorEscribirEnLinea = Cabecera
gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
End If
Next Cabecera
DibujaEspacio()
End Sub

Private Sub DibujaLaSubCabecera()

For Each SubCabecera As String In LineasDeLaSubCabeza

If (SubCabecera.Length > MaximoCaracter()) Then

Dim CaracterActual As Integer = 0
Dim LongitudSubcabecera As Integer = SubCabecera.Length

While (LongitudSubcabecera > 50)

CadenaPorEscribirEnLinea = SubCabecera
gfx.DrawString(CadenaPorEscribirEnLinea.Substring( CaracterActual, MaximoCaracter), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
CaracterActual += MaximoCaracter()
LongitudSubcabecera -= MaximoCaracter()
End While
CadenaPorEscribirEnLinea = SubCabecera
gfx.DrawString(CadenaPorEscribirEnLinea.Substring( CaracterActual, CadenaPorEscribirEnLinea.Length - CaracterActual), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
contador += 1

Else

CadenaPorEscribirEnLinea = SubCabecera

gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1

CadenaPorEscribirEnLinea = DottedLine()

gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
End If
Next SubCabecera
DibujaEspacio()
End Sub

Private Sub DibujaElementos()

Dim OrdenElemento As OrdenarElementos = New OrdenarElementos()

gfx.DrawString("Cant Descripción Valor", FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
DibujaEspacio()

For Each Elemento As String In Elementos

CadenaPorEscribirEnLinea = OrdenElemento.ObtenerCantidadDeElementos(Elemento)

gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
CadenaPorEscribirEnLinea = OrdenElemento.ObtenerPrecioElemento(Elemento)
CadenaPorEscribirEnLinea = AlineaTextoaLaDerecha(CadenaPorEscribirEnLinea.Len gth) + CadenaPorEscribirEnLinea
''áqui se le cambia el margen
gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, 27, Renglon(), New StringFormat())

Dim Nombre As String = OrdenElemento.ObtenerNombreElemento(Elemento)

MargenIzquierdo = 0
If (Nombre.Length > MaximoCaracterDescripcion) Then

Dim CaracterActual As Integer = 0
Dim LongitudElemento As Integer = Nombre.Length

While (LongitudElemento > MaximoCaracterDescripcion)

CadenaPorEscribirEnLinea = OrdenElemento.ObtenerNombreElemento(Elemento)
gfx.DrawString(" " + CadenaPorEscribirEnLinea.Substring(CaracterActual, MaximoCaracterDescripcion), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
CaracterActual += MaximoCaracterDescripcion
LongitudElemento -= MaximoCaracterDescripcion
End While

CadenaPorEscribirEnLinea = OrdenElemento.ObtenerNombreElemento(Elemento)
gfx.DrawString(CadenaPorEscribirEnLinea.Substring( CaracterActual, CadenaPorEscribirEnLinea.Length - CaracterActual), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon() + 10, New StringFormat())
contador += 1


Else

gfx.DrawString(" " + OrdenElemento.ObtenerNombreElemento(Elemento), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
End If


Next Elemento


MargenIzquierdo = 1
DibujaEspacio()
CadenaPorEscribirEnLinea = DottedLine()

gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
DibujaEspacio()
End Sub
Private Sub DibujaTotales()

Dim ordTot As OrdernarTotal = New OrdernarTotal()

For Each total As String In Totales

CadenaPorEscribirEnLinea = ordTot.ObtenerTotalCantidad(total)
CadenaPorEscribirEnLinea = AlineaTextoaLaDerecha(CadenaPorEscribirEnLinea.Len gth) + CadenaPorEscribirEnLinea

gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
MargenIzquierdo = 1

CadenaPorEscribirEnLinea = " " + ordTot.ObtenerTotalNombre(total)
gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
contador += 1
Next total
MargenIzquierdo = 10
DibujaEspacio()
DibujaEspacio()
End Sub