Kopfzerbrechen über mehrseitiges drucken



  • Hallo
    ich zerbreche mir seit mehreren Tagen den Kopf darüber wie ich in meinen Drucker Code einbaue das dieser auch mehrseitige Seiten druckt. Ich habe zwar schon ansätze aber die richte Lösung habe ich noch nicht gefunden.
    Mir ist klar das ich erstmal die Seitenanzahl ermitteln muss, dass würde ich ungefähr so machen:

    seitenzahl=datensaetzegesamt/datensaetzeproseite+1;
    

    Um die Seitenanzahl heraus zu bekommen nehme ich meinen Vector geteilt durch die Anzahl der Datensätze die ich auf eine Seite packen will.
    Der zweite Teil wird dagegen schon was schwieriger und zwar muss ich einen offsetDatensatz ermitteln der mir die Datensätze pro Seite * so da hört es jetzt auf was ist mit aktuelleSeite gemeint???

    int offsetDatensaetze=datensaetzeproseite*aktuelleSeite;
    

    Wie kann ich die festlegen? Ist aktuelle Seite ein Zähler der von 0 bis keine ahnung läuft?? Darüber zerbreche ich mir schon die ganze Zeit den Kopf. Bei dem Problem mit den mehrseitigen drucken hatte mir ein Kollege geholfe, der aber dann auf Montage gefahren ist und ich Ihn nicht mehr befragen konnte.



  • Ein Zähler von 0 an wäre imho logisch. 🙂

    Beispiel:
    10 Zeilen passen auf eine Seite.
    Dann musst du auf der ersten Seite ab 0 drucken, die zweite ab 10 usw.



  • Hmm ja aber das mit dieser aktuellen Seite ist mir noch nicht so ganz klar soll ich da einfach z.B. ne if machen:

    if(i < 10)
    {
    aktluelleSeite = 1;
    }
    else if(i >10 && i < 20)
    {
    aktuelleSeite = 2;
    } [cpp]



  • Na, entweder zählst du beim Seitenwechsel einfach mit ++ hoch, oder du rechnest das aus.

    Z.B. (ungetestet!)

    int zeile = 0;
    int seite = 0;
    while (zeile < zeilenanzahl)
    {
        zeile++;
        if (zeile % zeilenproseite == 0)
        {
            seite++;
        }
    }
    


  • Schau mal in dem Beitrag wurd das mal besprochen:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-120531.html

    aber du erinnerst mich daran das ich das ja noch für die FAQ zusammentragen sollte 🙄



  • Ich hatte es vergessen. 😃


Anmelden zum Antworten