Autor Beitrag
Phelios
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38

Win XP, Win 7
Visual Studio 2012 Express C#
BeitragVerfasst: Di 23.12.08 15:13 
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.

ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
azubi_20
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: Di 23.12.08 16:27 
Im passenden Artikel in der MSDN ist auch ein Beispiel mit C# : PrintDocument Class
:wink:
Phelios Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38

Win XP, Win 7
Visual Studio 2012 Express C#
BeitragVerfasst: Mi 24.12.08 00:13 
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 )