Forum: PC Hard- und Software c# mit .NET: Wie baut man ein Druckformular?


von Uhu U. (uhu)


Lesenswert?

Im Prinzip müßte man doch Druckerformulare so ähnlich wie 
Bildschirmformulare bauen können. Gibt es dafür Unterstützung von .NET?

von Peter II (Gast)


Lesenswert?

Uhu Uhuhu schrieb:
> Im Prinzip müßte man doch Druckerformulare so ähnlich wie
> Bildschirmformulare bauen können. Gibt es dafür Unterstützung von .NET?

Google geht wohl gerade nicht?

"c# print" liefert wohl nicht das passende?

Na ich bin mal nicht so, ich gebe dir den 1. suchtreffer:

http://csharp-tricks.blogspot.de/2012/01/drucken-mit-c.html

von Uhu U. (uhu)


Lesenswert?

Peter II schrieb:
> Google geht wohl gerade nicht?

Nein, google ist hier üblichwerweise abgeklemmt.

> "c# print" liefert wohl nicht das passende?

Nein ixquick befragt zwar google, zeigt den Link aber nicht an. Das was 
angezeigt wird, taugt leider nicht viel.

> Na ich bin mal nicht so, ich gebe dir den 1. suchtreffer:

Selbstgefällig bist du garnicht...

von Arc N. (arc)


Lesenswert?

Uhu Uhuhu schrieb:
> Im Prinzip müßte man doch Druckerformulare so ähnlich wie
> Bildschirmformulare bauen können. Gibt es dafür Unterstützung von .NET?

WinForms?
http://msdn.microsoft.com/en-us/library/xdt36c58.aspx

WPF wäre einfacher...
http://stackoverflow.com/questions/2322064/how-can-i-produce-a-print-preview-of-a-flowdocument-in-a-wpf-application

von Digi S. (digispark)


Lesenswert?

Ich mach das zwar immer mit VB.NET, aber das kannst Du ja sicher auf c# 
adaptieren:

zuerst ein PrintDocument und z. B. einen PrintPreviewDialog aus der 
Toolbox auf die Form ziehen. Das PrintDocument in die 
Document-Eigenschaft des PrintPreviewDialoges eintragen.

Dann einen Eventhandler für das PrintPage-Ereignis des 
PrintDocument-Objektes erstellen. Dort kannst Du dann über das 
Graphics-Objekt (ist Teil der 
System.Drawing.Printing.PrintPageEventArgs) Text und Grafik ausgeben (z. 
B. mit e.Graphics.DrawString, e.Graphics.DrawImage, 
e.Graphics.DrawRectangle usw.). Hierfür brauchst Du ggf. noch Objekte 
für Schriftart, Farbe, Stift usw. (beispielsweise mit Dim Font11b As New 
Font("Arial", 11, FontStyle.Bold))

Damit definierst Du, was gedruckt werden soll. Jetzt musst Du nur noch 
ShowDialog() des PrintPreviewDialoges aufrufen und schon bekommst Du 
eine Druckvorschau. Natürlich kannst Du das PrintDocument aber auch 
direkt ohne Vorschau drucken, wenn Dir das lieber ist.

von Arc N. (arc)


Lesenswert?

Mit Druckerformular dürfte wohl z.B. eine Vorlage für eine Rechnung etc. 
gemeint sein, die dann aus/aufgefüllt und gedruckt werden soll.
Aufwendig mit WinForms, einfacher mit WPF/XAML oder über diverse Umwege 
wie HTML oder Microsoft.Office.Interop

von Uhu U. (uhu)


Lesenswert?

Vielen Dank für die Tipps. Ich hatte die ganze Zeit mit c# auf .NET 2.0 
cf rumgebastelt und dort gibt es solcherlei Dinge natürlich nicht.

Arc Net schrieb:
> Mit Druckerformular dürfte wohl z.B. eine Vorlage für eine Rechnung etc.
> gemeint sein, die dann aus/aufgefüllt und gedruckt werden soll.

Ich habe ein Programm gebastelt, das den Mietspiegel durchrechnet. Die 
Diagnose wird im Moment einfach am Bildschirm angezeigt, aber ein 
Ausdruck nach einem vorgegebenen Formular wäre vielleicht auch nicht 
schlecht. Die Anforderungen sind eigentlich minimal: die Einstellungen 
einer Sammlung von Radiobuttons - jeweils nur der Text, der angeklickt 
wurde - und wenn angekreuzt, Texte einiger Checkboxes. Zum Schluß das 
Ergebnis, das aus wenigen fest formatierten Feldern besteht.

von arc net (Gast)


Lesenswert?

> Ich habe ein Programm gebastelt, das den Mietspiegel durchrechnet.
> Die Diagnose wird im Moment einfach am Bildschirm angezeigt,

Bitmap drucken die mit Control.DrawToBitmap erzeugt wurde bzw. vorher 
die angeklickten/kreuzten Werte in eine zweite Form/Control?
Sollte mit ein paar Ausnahmen auch die untergeordneten Controls 
erfassen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.