Vertikal Drucken



  • Hallo Forum,

    ich möchte gerne einen String auf meiner Druckseite vertikal Drucken.

    Habe bisher zwei Wege gefunden:

    In beiden Fällen nutze ich das Graphics Objekt aus dem PrintPageEventHandler,
    hier g genannt.
    B steht für den Brush.

    StringFormat^ fr = gcnew StringFormat();
    fr->FormatFlags = StringFormatFlags::DirectionVertical;
    g->DrawString("Datum", fontKlein, B, xPos, yPos, fr);
    

    Funktioniert, leider wird der String um 90° nach rechts gedreht. Ich benötige den String um 90° nach links gedreht.

    Möglichkeit 2:

    g->RotateTransform(float(-90));
    g->DrawString("Datum", fontKlein, B, xPos, yPos);
    g->ResetTransform();
    

    Hier erfolgt die Ausgabe nur bis ca. 70° Drehung. Bei 90° erscheint der String gar nicht mehr auf dem Blatt.

    Was mache ich verkehrt?
    Gibt es eine Möglichkeit den String aus Möglichkeit 1 zu spiegeln?

    Vielen Dank für eure Hilfe... 🙂



  • Bei 90° erscheint der String gar nicht mehr auf dem Blatt.

    Kann es sein dass der string durch die Drehung außerhalb des Blatte liegt ? Schon mal mit einer zusätzlichen Verschiebung probiert ?

    Gibt es eine Möglichkeit den String aus Möglichkeit 1 zu spiegeln?

    Zum Spiegeln kannst du ScaleTransform nutzen, eine Scalierung von -1 auf der X-Achse bedeutet eine Spiegelung an der Y-Achse da alle X-Koordinaten umgekehrt werden.

    Reihenfolge von Skalierung, Translation und Rotation solltest du natürlich beachten.


Anmelden zum Antworten