tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
2111
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JK_net JK_net ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    133
    Hallo!

    Ich habe einen Text, der über 2 Seiten geht, leider weiß ich aber nicht, wie ich im PrintDocument einen Seitenumbruch machen kann.

    Hat jemand so etwas schon mal gemacht?

    Vielen Dank im Voraus!

    MfG
    Jens
     

  2. #2
    Avatar von Niro99
    Niro99 Niro99 ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Beiträge
    54
    Hallo Jens!

    Das Drucken unter .NET ist immer ein "Gebastel"....
    Wenn das Dokument mehrere Seiten hat, kannst du das so festlegen (natürlich in der "PrintPage" - Methode)
    Code :
    1
    2
    3
    
    e.HasMorePages = true;
    // Sprunganweisung zum Neustarten von "printDocument1_PrintPage"
    return;

    Damit wird die Methode ein wiederholt aufgerufen. Das kannst du z.B. in einer "for-Schleife" mit einer globalen Variable anwenden, so dass er beim nächsten Mal wieder am richtigen Ort weiterfährt...

    Hast du alles auf Papier was du wolltest, kannst du die Druckseite so abschliessen:
    Code :
    1
    
    e.Cancel = true;
     
    So einfach wie möglich. Aber nicht einfacher!
    Albert Einstein

  3. #3
    JK_net JK_net ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    133
    Hallo!

    Vielen Dank schon mal für die Antwort!

    Leider funktioniert das Ganze noch nicht bei mir...
    Ich habe mal meinen Code beigefügt:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
     int i = 0; 
    y = 100;
    foreach (ListViewItem item in this.lvwFigures.Items)
    {
    if (i == 20)
    {
    // Seitenumbruch einfügen
    e.HasMorePages = true;
    return;
    }
    e.Graphics.DrawString(item.SubItems[0].Text, new Font("Arial", 11, FontStyle.Regular), Brushes.Black, 150, y + 100);
     
    i++;
    }

    Ich hole mir die Daten aus einem ListView, und möchte jeweils 20 Zeilen auf einer Seite ausgeben und anschließend einen Seitenwechsel machen, und die nächsten 20 Zeilen ausgeben...

    Ich würde mich freuen, wenn du mir behilflich sein könntest!

    MfG
    Jens
     

  4. #4
    Avatar von Niro99
    Niro99 Niro99 ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Beiträge
    54
    Hallo Jens!

    Sorry dass es so lange gedauert hat! Bei
    Code :
    1
    2
    
    e.HasMorePages = true;
    return;
    wird die Printpage erneut aufgerufen. Das heisst deine Zählvariable wird wieder auf null gesetzt und mit der foreach - Schleife wieder von vorne begonnen; und das ganze wiederholt sich bis zum Absturz....

    Ich würde das so umschreiben:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    int i;
     
    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        int y = 100;
        int k = i;
     
        while (i == listView1.Items.Count)
        {
            e.Graphics.DrawString(listView1.Items[i].SubItems[0].Text, new Font("Arial", 11, FontStyle.Regular), Brushes.Black, 150, y + 100);
     
            if (i == k+20)
            {
                e.HasMorePages = true;
                return;
            }
        }
    }
     
    So einfach wie möglich. Aber nicht einfacher!
    Albert Einstein

Ähnliche Themen

  1. [C#] PrintDocument Problem
    Von ihkawiss im Forum .NET Application und Service Design
    Antworten: 3
    Letzter Beitrag: 05.09.10, 15:09
  2. printDocument String "Größe" ermitteln ?
    Von MFC openGL im Forum .NET Application und Service Design
    Antworten: 4
    Letzter Beitrag: 11.01.06, 14:47
  3. PrintDocument
    Von pakko im Forum .NET Archiv
    Antworten: 0
    Letzter Beitrag: 11.05.05, 14:57
  4. PrintDocument
    Von ut1999 im Forum .NET Archiv
    Antworten: 0
    Letzter Beitrag: 28.02.05, 14:57
  5. Seitenumbruch
    Von markushain im Forum PHP
    Antworten: 2
    Letzter Beitrag: 11.08.04, 21:26