1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Criei funçao print em .net 2003 mas imprime a folha sem o que se escreve

Discussão em 'Programação' iniciada por Fil__, 6 de Junho de 2008. (Respostas: 2; Visualizações: 520)

  1. Fil__

    Fil__ Power Member

    Malta tenho um form no .net 2003 com text box e tenho um botao para imprimir com o seguinde codigo

    Código:
        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
            Dim dialog As New PrintDialog
            dialog.Document = pdoc
            If dialog.ShowDialog = DialogResult.OK Then
                pdoc.Print()
            End If     
        End Sub
    

    Ele realmente imprime mas nao percebo o porque de nao imprimir o que escrevo. Baseei-me dum exemplo que vi na net e esse exemplo ele imprime o texto perfeitamente. O que estarei a fazer de errado?
     
  2. Fil__

    Fil__ Power Member

    Ja consegui imprimir o conteudo de 1 Textbox. Acrescentei o seguinte codigo
    Código:
        Private Sub pdoc_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles pdoc.PrintPage
            Static intCurrentChar As Int32
            Dim font As New Font("Microsoft Sans Serif", 12)
            Dim intPrintAreaHeight, intPrintAreaWidth, marginLeft, marginTop As Int32
            With pdoc.DefaultPageSettings
                intPrintAreaHeight = .PaperSize.Height - .Margins.Top - .Margins.Bottom
                intPrintAreaWidth = .PaperSize.Width - .Margins.Left - .Margins.Right
                marginLeft = .Margins.Left ' X coordinate
                marginTop = .Margins.Top ' Y coordinate
            End With
            If pdoc.DefaultPageSettings.Landscape Then
                Dim intTemp As Int32
                intTemp = intPrintAreaHeight
                intPrintAreaHeight = intPrintAreaWidth
                intPrintAreaWidth = intTemp
            End If
    
            Dim intLineCount As Int32 = CInt(intPrintAreaHeight / font.Height)
            Dim rectPrintingArea As New RectangleF(marginLeft, marginTop, intPrintAreaWidth, intPrintAreaHeight)
    
    
            Dim fmt As New StringFormat(StringFormatFlags.LineLimit)
     
            Dim intLinesFilled, intCharsFitted As Int32
            e.Graphics.MeasureString(Mid(TbCliente.Text, intCurrentChar + 1), font, _
                        New SizeF(intPrintAreaWidth, intPrintAreaHeight), fmt, _
                        intCharsFitted, intLinesFilled)
    
            ' Print the text to the page.
            e.Graphics.DrawString(Mid(TbCliente.Text, intCurrentChar + 1), font, _
                Brushes.Black, rectPrintingArea, fmt)
    
            intCurrentChar += intCharsFitted
    
        End Sub
    
    Mas eu tenho varias textbox e algumas combobox. Consegui que imprimisse os conteudos de 2 textbox so que as palavras ficam uma em cima da outra. O que estarei a fazer mal? Pretendo que todos os dados colocados nelas sejam imprimidos. O que estara a falhar?
    Podem ajudar?
     
  3. Fil__

    Fil__ Power Member

    Ninguem me pode ajudar?
     

Partilhar esta Página