AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Komplettes Formular ausdrucken?

Ein Thema von Borschti · begonnen am 1. Nov 2007 · letzter Beitrag vom 18. Feb 2008
Antwort Antwort
Seite 3 von 4     123 4      
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#21

Re: Komplettes Formular ausdrucken?

  Alt 2. Nov 2007, 14:54
War ich also doch auf dem falschen Weg...hab die Eingaben miteinander Vertauscht

Nun eine letzte Frage habe ich doch noch zu dem Thema, und zwar wie weit die X und Y Achsen bei Canvas gehen...genauer gesagt will ich damit versuchen das Bild auf dem Ausdruck zu Zentrieren o. gibts da vielleicht sogar eine direkte Anweisung?
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#22

Re: Komplettes Formular ausdrucken?

  Alt 5. Nov 2007, 07:24
Zitat von Borschti:
Nun eine letzte Frage habe ich doch noch zu dem Thema, und zwar wie weit die X und Y Achsen bei Canvas gehen...genauer gesagt will ich damit versuchen das Bild auf dem Ausdruck zu Zentrieren o. gibts da vielleicht sogar eine direkte Anweisung?
In dem Fall helfen dir Printer.PageWidth und Printer.PageHeight
Chris
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#23

Re: Komplettes Formular ausdrucken?

  Alt 5. Nov 2007, 14:17
Danke, sorry das ich jetzt erst zurückschreibe, hatte keinen PC übers Wochenende.

Ich habe deinen mal nach den Befehlen gegoogelt und bin auf folgendes (als einzig sinnvolles) Ergebnis gekommen:

Printer.Canvas.StretchDraw(Rect((Printer.PageWidth - Bitmap.Width) div 2, (Printer.PageHeight - Bitmap.Height) div 2, Bitmap.Width*10, Bitmap.Height*8), Bitmap); Also, WENN ich das jetz endlich richtig verstanden habe (wovon ich ausgehe...) sind die ersten 2 Parameter da, um anzugeben welche Position der Ausdruck auf dem Blatt haben soll und die letzten zwei dazu da um die letztendliche größe auf dem Papier zu bestimmten.

Aber wieso verzehrt dann das Gesamte Druckbild wenn ich  (Printer.PageWidth - Bitmap.Width) div 2, (Printer.PageHeight - Bitmap.Height) div 2, ...) anstelle von (0, 0, ...) einfüge, wenn ich nämlich mit der zweiten Variante mein Programm starte und das Formular ausdrucke ist das Druckbild vollkommen normal.
Aber die erste Variante ist meines erachtens nicht verkehrt...

Was ist da bloß falsch...ich habe schon alle möglichen Varationen versucht aber der Ausdruck ist trotzdem nicht Zentriert
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#24

Re: Komplettes Formular ausdrucken?

  Alt 5. Nov 2007, 14:41
Zitat von Borschti:
Also, WENN ich das jetz endlich richtig verstanden habe (wovon ich ausgehe...) sind die ersten 2 Parameter da, um anzugeben welche Position der Ausdruck auf dem Blatt haben soll und die letzten zwei dazu da um die letztendliche größe auf dem Papier zu bestimmten.
Net ganz. Die ersten beiden (Left und Top) geben an, wo die obere linke Ecke hin soll, richtig. Aber die anderen beiden (Right und Bottom) geben nicht die Größe an, sondern die untere Rechte Ecke. Sprich Rect(10, 10, 9, 9) wäre nicht 9 Pixel groß, sondern nur einen.
Chris
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#25

Re: Komplettes Formular ausdrucken?

  Alt 6. Nov 2007, 07:46
Ah ok...das erklärt natürlich einiges :/
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#26

Re: Komplettes Formular ausdrucken?

  Alt 7. Nov 2007, 15:02
Hallo mal wieder

nachdem ich mich mit StretchDraw mm für mm vorgetastet hatte und trotzdem keinen Schritt näher an mein Ziel gekommen bin das der Ausdruck auf dem Papier Zentriert ist versuche ich nun die Bitmap vorher zu vergrößern und dann mit Draw den Ausdruck zu Zentrieren, dies hat aber nur halbwegs geklappt denn der Ausdruck ist jetzt zwar Zentriert und die Druckfläche an sich entspricht auch meinen Vorstellungen aber das Formular an sich ist nur ganz klein links oben in der Ecke abgebildet...

Hier mal eine kleine Abbildung so wie es aussieht (hab hier leider keinen Scanner...):
http://foto.arcor-online.net/palb/al...6632336263.jpg


Und hier auch der entsprechende Code Ausschnitt:

Delphi-Quellcode:
procedure TForm1.Drucken1Click(Sender: TObject);
begin

 if PrintDialog1.execute
    then
      Bitmap := GetFormImage;
     try
      Clipboard.Assign(Bitmap);
      Bitmap.Height := Bitmap.Height * 7; //hier wird die größe verändert
      Bitmap.Width := Bitmap.Width * 8; //hier auch
     with Printer do begin
      BeginDoc;
      Printer.Canvas.Draw((PageWidth - Bitmap.Width) div 2, (PageHeight - Bitmap.Height) div 2, Bitmap);
      // und hier wird der Ausdruck dann Zentriert
      EndDoc;
    end;
    finally
      Bitmap.Free;
    end;

end;
Ich habe keine Ahnung wo dran das Liegen könnte, kennt das Problem vielleicht jemand oder weiß eine Lösung
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#27

Re: Komplettes Formular ausdrucken?

  Alt 7. Nov 2007, 15:11
Zitat von Borschti:
Delphi-Quellcode:
[...]
      Bitmap.Height := Bitmap.Height * 7; //hier wird die größe verändert
      Bitmap.Width := Bitmap.Width * 8; //hier auch
[...]
Ich bin mir nicht sicher, aber ich glaube, dass du zwar die Bitmap an sich größer machst, aber das Bild in ihr vergrößert sich deswegen nicht.
Chris
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#28

Re: Komplettes Formular ausdrucken?

  Alt 8. Nov 2007, 08:10
Hmm ja, soweit war ich auch aber wenn ich bei google oder in verschiedenen Tutorials suche finde ich keine wirklich hilfreiche Antwort.
Nur wie kann ich jetzt die vom Formular erstellte Bitmap da anpassen, ich hab gedacht das geht mit

Delphi-Quellcode:
Bitmap.Height := Bitmap.Height * 7;
Bitmap.Width := Bitmap.Width * 8;
Da ja hier die größe des von mir erstellten Bitmaps verändert wird oder?

Also hat da vielleicht jemand einen Ansatz wie das Problem behoben werden kann?

mfg
Borschti
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#29

Re: Komplettes Formular ausdrucken?

  Alt 8. Nov 2007, 08:15
http://www.swissdelphicenter.ch/de/showcode.php?id=1806

Aber was denkst du, was die Funktion vom Link nutzt? Richtig! StretchDraw
Chris
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#30

Re: Komplettes Formular ausdrucken?

  Alt 12. Nov 2007, 15:05
An dieser Stelle nochmal vielen Dank für deine Hilfe und die Geduld die du mit dir gebracht hast

Also ich habe jetzt eine andere Lösung gefunden und zwar ein paar recht simple Rechnungen, hier mal meine Lösung falls es jemanden Interessiert bzw. mal jemand das gleiche Problem haben sollte:

Printer.Canvas.StretchDraw(Rect( 100, (PageHeight div 4)*(3 div 2), PageWidth - 100, (PageHeight div 4)*3 ), Bitmap); Ich habe einfach das Blatt in gleiche große Teile aufgeteilt und hatte somit nichtmehr das Problem mit den Pixeln, je nach Form eures Formulars solltet ihr die Parameter verändern, sonst könnte euer Formular ziemlich verzehrt aussehn
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz