La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ubicacion de ejemplos C:\Users\LuisRafael\Documents\Visual Studio 2013\Projects\PrintDocument.

Presentaciones similares


Presentación del tema: "Ubicacion de ejemplos C:\Users\LuisRafael\Documents\Visual Studio 2013\Projects\PrintDocument."— Transcripción de la presentación:

1 Ubicacion de ejemplos C:\Users\LuisRafael\Documents\Visual Studio 2013\Projects\PrintDocument

2 Ing. Luis Calderon P. UNIVERSIDAD DEL AZUAY
Uso de PrintControl Ing. Luis Calderon P. UNIVERSIDAD DEL AZUAY

3 Objecto PrintPreviewControl PrintDocument\PrintPreviewControl

4 Objeto PrintDocument Arrastrar un objeto PrintDocument al formulario que mostrará el reporte

5 ContextMenu Arrastrar con ContextMenu al formulario para implementar las funciones para mostrar la pagina siguiente o anterior

6 PrintPreviewControl Arrastrar un PrintPreviewControl al formulario que permitirá mostrar el preview del reporte en el formulario

7 Asignar Propiedades de PrintPreviewControl
Asignar las Propiedades ContextMenuStrip al MenuContextual y el Document al PrintDocument1

8 Formulario Creado El formulario se verá como este.

9 Miembros para generación de paginas y mostrar paginas
Definimos los miembros públicos. npaginas indica el numero de paginas a imprimir Ipagina se usa para indicar el numero de pagina a generar en el bucle de generación de paginas paginaMostrar se usa para indicar la pagina desde la que se mostrara en el Preview

10 Evento Load para inicializar pagina a mostrar y generar reporte
* Definimos el evento Load del Formulario. Inicializamos la pagina a mostrar desde la pagina 0 (la primera) * Invocamos al método Show del objeto PrintPrevieControl, este método desencadenará el evento PrintPage del objeto PrintControl

11 Evento PrintPage Generamos una línea de texto usando el método DrawString del objecto Graphics del argumento de tipo PrintPageEventArgs Incrementamos el contador de paginas impresas y verificamos si hemos impreso el numero total de paginas Si se alcanza el numero total de paginas impresas se devuelve la propiedad HasMorePages del argumento e en False para terminar la generación de paginas, caso contrario se asigna True

12 Crear los Items del ContextMenu
Creamos los items en el menú contextual para mostrar la Pagina Siguiente, Anterior y para mostrar el preview en 1 y 2 columnas

13 Crear los métodos para el ContextMenu

14 Objecto PrintPreviewDialog

15 Generacion de Varias Paginas PrintDocument\PrintPreviewDialog
Usaremos un PrintPreviewDialog que a su vez tiene embebido un PrintPreviewControl Vamos definir el evento PrintPage para generar varias líneas por pagina. Se debe calcular las líneas por pagina que se imprimirán y eso depende del tamaño del Font y de los márgenes (superior e inferior) de la pagina

16 En el evento Load abrimos el archivo
Vamos a usar un objecto TextReader que nos permitirá leer líneas de un archivo de texto para generar el reporte Private streamToPrint As StreamReader Private Shared filePath As String = Windows.Forms.Application.StartupPath & "\MyDoc.txt“ En el evento Load abrimos el archivo streamToPrint = New StreamReader(filePath)

17 Posicionar Texto impreso
El objeto PrintDocument tiene la propiedad DefaultPageSettings que a su vez tiene la propiedad Margins que nos permite determinar el tamaño de los márgenes (Top,Left) necesarios para determinar la posición en la que debe imprimirse cada línea. Luego de cada línea impresa la posición vertical debe incrementarse en función del alto de la fuente

18 Determinar Margenes Determinamos los márgenes superior e inferior para establecer la posición inicial y posterior de la línea impresa Dim topMargin = PrintDocument1.DefaultPageSettings.Margins.Top Dim leftMargin = PrintDocument1.DefaultPageSettings.Margins.Left

19 Calculamos las líneas por pagina y la posición horizontal
Private myFont As Font = New Font("Arial", 10) linesPerPage = e.MarginBounds.Height / myFont.GetHeight(e.Graphics) Dim horizontalPosition As Single = leftMargin

20 Usamos el objeto TextReader para leer un documento de texto cuyas líneas serán impresas en el reporte Usamos una variable currentLine como contador para determinar la línea a imprimir y usamos un bucle While currentLine < linesPerPage Para imprimir las líneas de cada pagina

21 Dentro del bucle leemos cada línea del archivo de texto origen hasta que ya no existan mas lineas
textLine = streamToPrint.ReadLine() If textLine Is Nothing Then Exit While End If

22 La posición vertical de cada línea la calculamos con
verticalPosition = topMargin + currentLine * myFont.GetHeight(e.Graphics) Luego imprimimos la línea e.Graphics.DrawString(textLine, myFont, myBrush, horizontalPosition, verticalPosition) Incrementamos currentLine

23 Al salir del bucle de impresión de líneas comprobamos si hemos llegado a la ultima línea del documento para determinar si hay mas paginas. If Not (textLine Is Nothing) Then e.HasMorePages = True Else e.HasMorePages = False End If


Descargar ppt "Ubicacion de ejemplos C:\Users\LuisRafael\Documents\Visual Studio 2013\Projects\PrintDocument."

Presentaciones similares


Anuncios Google