Autor Beitrag
Peter666
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 30.03.09 11:12 
Hi @all,

ich habe ein Problem mit der PrintDocument Funktion,
wenn ich die Funktion ausführe, bekomme ich immer die Exeption, das der RPC-Server nicht verfügabr ist, obwohl der Dienst gestartet ist.

Der Quellcode sieht bis jetzt so aus:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
 PrintDocument printdoc = new PrintDocument();
            PrintDialog dia = new PrintDialog();
            if (dia.ShowDialog() == DialogResult.OK)
            {
              printdoc.Print();
            }


kann mir jemenad helfen?

vielen Dank

Peter

Moderiert von user profile iconKha: C#-Tags hinzugefügt
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 30.03.09 11:44 
Hallo Peter,

kann es sein, dass du noch nicht genügend Informationen lieferst? Ich kann keinen Zusammenhang zwischen deinem PrintDocument-Objekt und einem bestimmten Drucker oder dem RPC-Server erkennen. (Natürlich fehlt auch das PrintPage-Ereignis, aber das dürfte der Kürzung aufs Wesentliche zum Opfer gefallen sein und sollte bei deinem Problem tatsächlich keine Rolle spielen.)

Übrigens bitte ich dich um etwas mehr Genauigkeit:
  • PrintDocument ist keine Funktion, sondern zunächst eine Klasse; daraus entsteht bei dir ein Objekt.
  • Funktionen und Prozeduren gibt es in C# nicht, alles sind Methoden.
  • Quellcode sollte auch als solcher markiert werden.
  • PrintDocument bietet doch direkt eine PrintDialog-Methode; warum benutzt du nicht diese?
  • Von welchem Typ ist die Exception eigentlich? Das könnte bei der Hilfe nützlich sein.

Gruß Jürgen
Peter666 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 30.03.09 13:31 
Hi,

ich bin jetzt schon etwas weiter gekommen, nun bekomme ich immer einen Fehler, wenn ich ein Bitmap an den Drucker sende. Der Fehler lautet:2-Argument: kann nicht von "System.EventArgs" in "System.Drawing.Printing.PrintPageEventArgs" konvertiert werden.

Kann mir bitte jemand sagen, was ich hier übergeben muss????
Ich habe schon gegoogelt usw. finde mich aber nicht so ganz in den tutorials zurecht.

Hier mal ein kleiner Quellcodeschnippsel, damit Ihr wisst um was überhaupt geht.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
        private void Drucken_Click(object sender, EventArgs e)
        {
            PrintDocument printDocument1 = new PrintDocument();
            PrintDialog dia = new PrintDialog();
            printDocument1.PrinterSettings = dia.PrinterSettings;
            Graphics g = this.box.CreateGraphics();
            if (dia.ShowDialog() == DialogResult.OK)
            {
                for (int i = 0; i < this.fileEntries.Length; i++)
                {
                    
                    printDocument1_PrintPage(g,e);
                    printDocument1.Print();
                }

            }

        }

        private void printDocument1_PrintPage(object sender, PrintPageEventArgs ev)
        {
            ev.Graphics.DrawImage(Image.FromFile(this.fileEntries[1]), ev.Graphics.VisibleClipBounds);
        }


Viele Grüße und besten Dank

Peter
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 30.03.09 14:08 
Hallo Peter,

du hast das Druck-Prinzip noch nicht verstanden. Mit der PrintDocument-Klasse wird das Drucken vorbereitet und eingerichtet; das PrintPage-Ereignis wird vom "NET-Printer" ausgelöst und nicht vom Programmierer-Code; aber im PrintPage-EventHandler wird der Druck gesteuert. Du musst also den EventHandler an das PrintDocument hängen und dort das Graphics-Objekt der aktuellen Druckseite mit den Inhalten füllen.

Siehe SDK-Doku/MSDN PrintDocument.PrintPage-Ereignis (Beispiel) oder im OpenBook Kap. 18 Drucken

Jürgen