Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Page number while printing, header, footer

Îåêßíçóå áðü ôï ìÝëïò Elias.Tsokanis. Τελευταία δημοσίευση από το μέλος Elias.Tsokanis στις 27-01-2014, 14:19. Υπάρχουν 0 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  27-01-2014, 14:19 74943

    Page number while printing, header, footer

    χρησιμοποιώ τον παρακάτω κώδικα για την εκτύπωση ενός richtext.box.

    πως μπορώ να προσδιορίσω τον αριθμό της τρέχουσας σελίδας που εκτυπώνεται?

    επίσης υπάρχει τρόπος να τυπώσω σε κάθε σελίδα header & footer?

    όπου το footer ο αριθμός της σελίδας.

     Ευχαριστώ

     

     

     

     

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

    'PrintPage is the foundational printing event. This event gets fired for every

    ' page that will be printed

    Static intCurrentChar As Int32

    ' declaring a static variable to hold the position of the last printed char

    Dim font As New Font("Courier New", 8)

    ' initializing the font to be used for printing

    Dim PrintAreaHeight, PrintAreaWidth, marginLeft, marginTop As Int32

    With PrintDocument1.DefaultPageSettings

    ' initializing local variables that contain the bounds of the printing area rectangle

    PrintAreaHeight = .PaperSize.Height - .Margins.Top - .Margins.Bottom

    PrintAreaWidth = .PaperSize.Width - .Margins.Left - .Margins.Right

    ' initializing local variables to hold margin values that will serve

    ' as the X and Y coordinates for the upper left corner of the printing

    ' area rectangle.

    marginLeft = .Margins.Left

    marginTop = .Margins.Top

    ' X and Y coordinate

    End With

    If PrintDocument1.DefaultPageSettings.Landscape Then

    Dim intTemp As Int32

    intTemp = PrintAreaHeight

    PrintAreaHeight = PrintAreaWidth

    PrintAreaWidth = intTemp

    ' if the user selects landscape mode, swap the printing area height and width

    End If

    Dim intLineCount As Int32 = CInt(PrintAreaHeight / font.Height)

    ' calculating the total number of lines in the document based on the height of

    ' the printing area and the height of the font

    Dim rectPrintingArea As New RectangleF(marginLeft, marginTop, PrintAreaWidth, PrintAreaHeight)

    ' initializing the rectangle structure that defines the printing area

    Dim fmt As New StringFormat(StringFormatFlags.LineLimit)

    'instantiating the StringFormat class, which encapsulates text layout information

    Dim intLinesFilled, intCharsFitted As Int32

    e.Graphics.MeasureString(Mid(RichTextBox1.Text, intCurrentChar + 1), font, _

    New SizeF(PrintAreaWidth, PrintAreaHeight), fmt, intCharsFitted, intLinesFilled)

    ' calling MeasureString to determine the number of characters that will fit in

    ' the printing area rectangle

    e.Graphics.DrawString(Mid(RichTextBox1.Text, intCurrentChar + 1), font, Brushes.Black, rectPrintingArea, fmt)

    ' print the text to the page

    intCurrentChar += intCharsFitted

    'advancing the current char to the last char printed on this page

    If intCurrentChar < RichTextBox1.Text.Length Then

    e.HasMorePages = True

    'HasMorePages tells the printing module whether another PrintPage event should be fired

    Else

    e.HasMorePages = False

    intCurrentChar = 0

    End If

    End Sub

     

     

    Δημοσίευση στην κατηγορία: , , ,
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems