Announcement

Collapse
No announcement yet.

Image drucken

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Image drucken

    Hallo zusammen,

    Kann mir bitte jemand verraten wie ich ein Image drucken kann?
    (C++ Builder 2007 im Einsatz hier)

    Form1->Image1->Print() gibts leider nicht :-(


    MfG
    toroid

  • #2
    Entweder die Form insgesamt drucken oder die Bitmap skalieren (dpi des Druckers) und über TPrinter->Canvas ausgeben und drucken. Die Forensuche hier gibt dazu weitere Hinweise
    Christian

    Comment


    • #3
      Am das mitgelieferte Reportingtool. Müsste bei der 2007er Version Rave sein.

      Comment


      • #4
        Hallo

        Danke für die Tips.. ja es soll nicht die ganze form1 gedruckt werden, sondern nur ein Bild.
        Hab jetzt tagelang rumprobiert, jedoch kein Erfolg.
        Bekomm des Image->Canvas einfach nicht in Printer->Canvas kopiert.
        hab keine Ahnung wie man die Canvas Geschichte bedient... bzw wie des alles zusammenhängt. Hab bisher auch noch keine Übersicht gefunden, bzw ne Anleitung/Erklärung wie des aufgebaut is. Also Canvas generell im C++ builder.

        TPrinter *Drucker= Printer();
        Drucker->BeginDoc();

        Drucker->Canvas = Image1->Canvas;

        Drucker->EndDoc();

        funzt nicht..


        gruß
        toroid

        Comment


        • #5
          http://www.marquardtnet.info/cecke/q...quicky_30.html

          Ein Canvas ist die Zeichefläche. Einmal die Zeichenfläche des Bildschirms und im Falle von TPrinter die Zeichenfläche des Druckers.

          Hab bisher auch noch keine Übersicht gefunden, bzw ne Anleitung/Erklärung wie des aufgebaut is.
          Schau in der Hilfe zu TCanvas nach. Dort findest du Befehle um Bitmaps von einem Canvas in einen anderen zu kopieren und dabei die Größe zu ändern. Oder nutze die Suchfunktion hier
          Christian

          Comment


          • #6
            jo, danke für erneute Tips

            Suchfunktion hab ich natürlich auch schon gequält, aber nicht weiter schlau geworden dadurch..

            danke
            Zuletzt editiert von toroid; 06.11.2009, 10:55.

            Comment


            • #7
              http://entwickler-forum.de/showthrea...=image+drucken
              Christian

              Comment


              • #8
                *schäm*

                vielen dank

                doch tomaten auf den augen
                werds durcharbeiten..... schon gespannt

                Comment


                • #9
                  hallo Christian

                  danke für die Tips und den link
                  ich habs jetzt schomal geschafft ein Bild auf dem Drucker auszugeben :-) ... Erfolgserlebnis

                  Bin grad daran ein etwas grösseres Programm zu schreiben mit dem man ein Formular ausfüllen kann. dh meine Vorstellung war Benutzereingaben in Edit-Feldern entgegenzunehmen und das Formular dann als Image anzuzeigen. Die Eingaben aus den Edits sollten in transparenten Labels anzgezeigt werden, die schön platziert sind.
                  Jetzt muss ich wohl den Text irgendwie per TxtOut() schreiben und entsprechend Koordinaten vorher zusammensuchen... und das bei rund 150 Eingabe-Feldern...
                  oder kann ich labels die aufm image plaziert sind mitausdrucken, bzw deren koordinaten mit übergeben?
                  Das ganze muß dann noch 90° gedreht werden, um Quer zu drucken...

                  gruß
                  Christian

                  Comment


                  • #10
                    Wird wohl nicht anders gehen.

                    Allerdings ist mirunklar, warum du nicht die ganze Form druckst......bzw. dein Programm so konzipierst.
                    Christian

                    Comment


                    • #11
                      ich möcht ja nur das image mit den formulareinträgen drucken

                      oder gibts noch ne möglichkeit...
                      Form drucken aber so skalieren dass nur das image sichtbar ist vielleicht?
                      dann würden die labels mitgedruckt.. wär toll

                      Comment


                      • #12
                        Nein, gibt es nicht
                        Christian

                        Comment


                        • #13
                          ok.. danke für die Auskunft

                          Comment


                          • #14
                            nun, etwas Zeit ist vergangen und ich bin mit meiner Anwendung soweit, dass ich jetzt das Problem mit dem Drucken lösen muss.
                            was ich gern hätte ist:
                            eine Excel-Tabelle anzeigen, mit Daten aus meinem vorhandenem Array gefüllt,
                            und diese dann ausgedruckt.
                            Zum Anzeigen könnte ich ein TImage verwenden und mit labeln belegen, soweit sogut.
                            Nur dann gehts los mit dem Drucken. Wenn ich dieses tue, ist mein Image nicht klar und sauber, wie beim Ausdruck aus Excel. Hab mit dem Image schon verschiedene Auflösungen und Vorlagen probiert, aber die konturen sind immer unscharf.
                            Mach hierbei was falsch?

                            Der 2te Ansatz wär dann, die Tabelle nachzuzeichnen, Canvas Draw etc.
                            hier wär die Frage.. wie genau?
                            dh wenn ich das selber zeichne, würde ichs auch gern gleich als Anzeige verwenden, und die image sache dann ganz lassen.
                            welche Komponente wär da zu Empfehlen, die mir ihr Canvas anzeigt, und das ich dann drucken kann..?

                            gruß
                            toroid

                            Comment


                            • #15
                              hab die Tabelle jetzt komplett selber gezeichnet..
                              Image3, größe: 850x630
                              ...."
                              Form1->Image3->Canvas->MoveTo(0, 0);
                              Form1->Image3->Canvas->LineTo(849, 0);
                              Form1->Image3->Canvas->TextOutA(362, 125, "Auftrag-Nr.");
                              "... etc

                              rotate und druck funzt auch.. mittels:

                              // rotate
                              Image6->Width = Image3->Height+15;
                              Image6->Height = Image3->Width+61;
                              for (int x=0; x<850; x++)
                              for(int y=0; y<630; y++)
                              Image6->Canvas->Pixels[y+15][911-1-x] = Image3->Canvas->Pixels[x][y];

                              // druck
                              TPrinter *Prntr = Printer();
                              TRect Rect;
                              int dpiX = GetDeviceCaps(Prntr->Handle, LOGPIXELSX);
                              int dpiY = GetDeviceCaps(Prntr->Handle, LOGPIXELSY);
                              Rect.Left = 0;
                              Rect.Top = 0;
                              Rect.Right = 630 * dpiX / 78;
                              Rect.Bottom = 850 * dpiY / 78;

                              Prntr->BeginDoc();
                              Prntr->Canvas->StretchDraw(Rect, Image6->Picture->Graphic);
                              Prntr->EndDoc();

                              problem bleibt trotzdem:
                              Der Ausdruck ist immer noch unscharf, sieht verwaschen aus
                              irgendwie n problem mit der Auflösung scheints...
                              kann da jemand was zu sagen?
                              die Original-Vorlage ausm Excel gedruckt sieht super aus, da gehts auch irgendwie

                              Comment

                              Working...
                              X