Druckproblem



  • Hallo zusammen,

    ich hab ein Problem beim Drucken mit dem TPrinter() Objekt.
    Mom. benutze ich den C++ Builder 5.

    Hier mein Code:

    OpenDialog1->Execute();
    
    Graphics::TBitmap *bmp1 = new Graphics::TBitmap();
    Graphics::TBitmap *bmp2 = new Graphics::TBitmap();
    
    bmp1->LoadFromFile(OpenDialog1->FileName);
    
    TRect Druck = Rect(0,0,Printer()->PageWidth,Printer()->PageHeight);
    
    bmp2->Height=Printer()->PageHeight;
    bmp2->Width=Printer()->PageWidth;
    
    bmp2->Canvas->StretchDraw(Druck,bmp1);
    
    try  // Versuchen den Drucker anzusprechen über WINDOWS
       {
         Printer()->Title = "Dokument";
         Printer()->BeginDoc();
         Printer()->Canvas->CopyMode=cmSrcCopy;
         Printer()->Canvas->CopyRect(Druck,bmp2->Canvas,Druck);
         Printer()->EndDoc();
       }
    
    catch (EPrinter &E) // Falls keine Drucker da, etc dann Exception
      {
      // gibt die Exception-Message als Fehlermeldung aus
      MessageBox(0, E.Message.c_str(), "Druckerproblem!", MB_ICONSTOP |MB_OK);
      }
    delete bmp1;
    delete bmp2;
    

    Das Bild was ich lade ist relativ groß, ca. 4 Mb und die Auflösung liegt bei 2450 Breite x 3530 Höhe.

    Prinzipiell gibt es keine Syntax Fehler im Code sagt mir der Compiler,
    aber beim Drucken, gibt mir mein Deskjet 840c nur eine leere Seite.

    Vielleicht ein jemand von euch eine Ahnung woran das liegen kann,
    ich sitz schon seit 4 Stunden davor, und es klappt nicht. 😞

    Würde mich freuen wenn mir jemand helfen könnte!

    Bye Bye



  • Schau Di rmal das Druckbeispiel auf meiner Seite an.



  • Hallo F98,

    danke für den Hinweis.
    Hab mir das "Drucken-Beispiel" von deiner Internetseite angeschaut, aber finde
    keinen direkten Unterschied der meinen Problem betrifft?
    Oder hab ich was übersehen... ?

    Bye



  • Netzcowboy,

    Netzcowboy schrieb:

    Prinzipiell gibt es keine Syntax Fehler im Code sagt mir der Compiler,
    aber beim Drucken, gibt mir mein Deskjet 840c nur eine leere Seite.

    obwohl ich da kein Experte bin, sieht der Code erst einmal nicht total abwegig aus. Ich würde mich Schritt für Schritt an die Fehlerursache herantasten:
    a) Kann ich überhaupt Bilder drucken (siehe z.B. das simple Code-Beispiel aus der CB-Hilfe für TPrinter::PageWidth)?
    b) Könnte es vielleicht mit der Größe der Grafik zusammenhängen?
    c) Kann ich auf ein TImage statt auf Printer() "drucken"? (Wenn das geht, währe der Code schon mal in Ordnung und der Drucker macht sich verdächtig.)
    d) Ist da eigentlich noch Tinte im Drucker? 🙂



  • Bei Problemen mit dem Drucker einfach die Hotline anrufen unter 01805/652180


Anmelden zum Antworten