tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
758
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Panda Cabrio Panda Cabrio ist offline Mitglied
    Registriert seit
    Mar 2006
    Beiträge
    10
    Moin!

    Ich will einen String ausdrucken der über mehrere Seiten gehen kann!

    Wie kann ich erkennen, wann eine Seite vorbei ist?
    bzw. wieviel Text auf eine Seite passt!

    Bisher lese ich einfach die Zeilenwechsel (0xA) in dem String aus und
    bestimme darüber wieviel Zeilen schon geschrieben wurden!

    Aber wie kann ich erkennen wieviel Zeichen in eine Zeile passen,
    in Times sind ja z.B. nicht alle Zeichen gleich lang.
     

  2. #2
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Ich gehe mal davon aus, dass du dir irgendwo schon einen DeviceContext für den Drucker besorgt hast.
    Hier kannst du schon mal die Seitengröße bzw. den bedruckbaren Bereich rauskriegen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    // dc ist der DeviceContext für den Drucker
     
    dc.SetMapMode(MM_LOENGLISH);
     
    // Beginn des bedruckbaren Bereiches (Startkoordinaten auf der Seite)
    int nOffsetY = dc.GetDeviceCaps(PHYSICALOFFSETY);  
    int nOffsetX = dc.GetDeviceCaps(PHYSICALOFFSETX);
     
    // Größe des bedruckbaren Bereiches        
    int nHeight  = dc.GetDeviceCaps(PHYSICALHEIGHT) - (2 * nOffsetY);
    int nWidth   = dc.GetDeviceCaps(PHYSICALWIDTH) - (2 * nOffsetX);

    Die Breite eines Textes bekommst du mit GetTextExtent():
    Code :
    1
    
    CSize size = dc.GetTextExtent(_T("Irgendwas zum drucken"));

    Du musst also vor dem Drucken mit GetTextExtent() ausprobieren, wieviel Text in eine Zeile passt (size.x < nWidth).
    Dann kannst du den Textteil drucken und das ganze Prozedere ab der aktuellen Textposition für die nächste Zeile durchführen.
    Wenn du immer die Texthöhe (size.y) aufaddierst, kannst du diesen Wert immer mit der Seitenhöhe (nHeight) vergleichen und bekommst so mit, wann die Seite voll ist.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  3. #3
    Panda Cabrio Panda Cabrio ist offline Mitglied
    Registriert seit
    Mar 2006
    Beiträge
    10
    Danke das war die Funktion nach der ich gesucht hatte
     

Ähnliche Themen

  1. Über mehrere Seiten drucken
    Von Almjodler im Forum Photoshop
    Antworten: 4
    Letzter Beitrag: 19.03.10, 17:05
  2. tabelle über mehrere Seiten drucken
    Von luchs3 im Forum CSS
    Antworten: 4
    Letzter Beitrag: 28.01.09, 18:00
  3. Drucken über mehrere Seiten
    Von fox_2_k im Forum Photoshop
    Antworten: 4
    Letzter Beitrag: 30.09.08, 10:06
  4. pdf auf mehrere Seiten drucken
    Von sra im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 27.07.04, 10:33
  5. Grafik auf mehrere Seiten drucken
    Von Darkforce im Forum Photoshop
    Antworten: 2
    Letzter Beitrag: 30.09.03, 09:44