Entwickler-Ecke

WinForms - Wie sag ich's meinem Drucker?


Phelios - Di 23.12.08 15:13
Titel: Wie sag ich's meinem Drucker?
Hi Leute ...

Ich möchte ohne viel Schnickschnack eine poplige TextDatei an meinen
Drucker senden. Z.B. in Galileo-Computing steht ja viel darüber, aber
wie der eigentliche Text übergeben wird, leider nicht.
Eigentlich ist es wohl recht simpel.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
        public void PrintText()
        {
            PrintDocument ppd = new PrintDocument();
            ppd.DocumentName = GetDateiName();

            // Hier müßte der eigentliche Text übergeben werden.
            // Aber WIE ? ? ?

            ppd.Print();
        }


Der Drucker wird angesprochen, auch der DocuName stimmt.
Nur eben leere Seite.
Der Text steckt in einer Textbox "txtBox.Text"
Mir fehlt eigentlich nur eine Zeile.

Wäre nett, wenn mir mal einer kurz auf die Sprünge helfen würde. :oops:

BESTEN DANK

Greeting
( Karl )


Christian S. - Di 23.12.08 16:23

Hallo!

Das Drucken ist eigentlich ganz einfach, man muss nur wissen, wo es stattfindet. ;-)

PrintDocument ist schonmal richtig. Aber den eigentlich Inhalt sendest Du dem Drucker im PrintPage-Event des PrintDocuments. Das wird für jede einzelne Seite aufgerufen.

In diesem Event hast Du als Parameter PrintPageEventArgs e. Das hat einmal eine Eigenschaft e.Graphics. Auf dieses Graphics-Objekt kannst Du Deine Inhalte ausgeben, z.B. mittels e.Graphics.PrintString( ... ). Beachte, dass e Dir auch noch sagt, welche Ränder Du frei lassen musst: e.MarginBounds. Deine "linkeste" x-Position auf dem Graphics-Objekt sollte als z.B. e.MarginBounds.Left sein, Deine "rechteste" ist dann e.MarginBounds.Left + e.MarginBounds.Width. Für die Höhe analog.

Du musst am Schluss dann noch festlegen, ob Du eine weitere Seite drucken willst. Dafür setzt Du, falls Du noch ne Seite brauchst, e.HasMorePages auf true. Für die nächste Seite wird dann wieder das Event aufgerufen.

Grüße
Christian


azubi_20 - Di 23.12.08 16:27

Im passenden Artikel in der MSDN ist auch ein Beispiel mit C# : PrintDocument Class [http://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.aspx]
:wink:


Phelios - Mi 24.12.08 00:13
Titel: Wie sag ich's meinem Drucker?
user profile iconChristian S. hat folgendes geschrieben Zum zitierten Posting springen:
Hallo!
Das Drucken ist eigentlich ganz einfach, man muss nur wissen, wo es stattfindet. ;-)

Das ist wahr.
Obwohl ich sehr viel gelesen habe, hatte ich doch erst nach Deinen Ausführungen
den Durchblick. Auf jeden Fall wird jetzt gedruckt, nur die Fonts sind kleiner,
als bei einem Kommerziellen TextEditor, bei gleicher Printer-Einstellung und
Fontsize.

Egal, das finde ich sicher noch heraus. :D
Ich mach jetzt erst mal meine Kiste AUS.

Ich wünsche DIR, und allen anderen Usern hier ein

############ F R O H E S W E I H N A C H T S F E S T ! ! ! ############

Greeting
( Karl )