[C#] PrintDocument Problem

ihkawiss

Grünschnabel
Hallo zusammen

Ich habe ein kleines Problem mit PrintDocument. Ich möchte dem User meiner Anwendung ermöglichen Daten auszudrucken, das funktioniert eigentlich alles schon ganz gut. Realisiert habe ich dies über System.Drawing.Printing.PrintDocument;. Genauer gesagt zeichne ich die Daten via drawString in ein Document und drucke dies.

Nun zum Problem: Wird ein String zu lang, der mit Graphics.DrawString gezeichnet wird, wird dieser sozusagen über den Papierrand hinaus gedruckt. Ich müsste nun irgendwie definieren können wo die Seite zuende ist bzw. ab wo er den String auf der nächsten Zeile fortsetzten muss.

Ist dies standardmässig möglich ?

@Offtopic: Hoffe habe den Thread im richtigen Forum eröffnet, war mir nicht sicher.

Danke und Gruss ihkawiss
 

ihkawiss

Grünschnabel
Habe das Problem gelöst, man übergebe der DrawString-Methode ein LayoutRectangle :)

Code:
e.Graphics.DrawString(orderInfoBlock, printFont, Brushes.Black, new RectangleF(25, 334, 800, 1500));

Lg ihkawiss
 
Zuletzt bearbeitet:

Spyke

Premium-User
Bei der DrawString Methode gibts auch noch einen weiteren Parameter der StringFormat erwartet.
Die Klasse könnte dir ev. auch noch behilflich sein.
(Textausrichtung, angesprochene WordWrap etc.)
 
V

VScan

Hey,

ist vielleicht schon zu spät, aber naja, lieber zu spät als nie xD

Code:
            StringFormat drawCenter = new StringFormat();
            drawCenter.Alignment = StringAlignment.Center; // horizontal zentriert
            drawCenter.LineAlignment = StringAlignment.Center; // vertikal zentriert
            drawCenter.Trimming = StringTrimming.None; // Trimmeigenschaften -> msdn
            drawCenter.FormatFlags = StringFormatFlags.MeasureTrailingSpaces; // FormatFlag zum messen der Strings für übergrößen, dann kann man die Rectangles auch größer machen...


MfG