![]() |
Grafik drucken mit Printer.Canvas
Hallo zusammen,
ich wollte eine Grafik drucken mit uses Printers; Printers.Canvas.Draw....... hier mein Quellcode:
Delphi-Quellcode:
Leider wird mir das Bild nicht gezeigt,
Printer.BeginDoc;
Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + 'MyPic.bmp'); Printer.Canvas.Draw(250, 250, Image1.Picture.Graphic); Printer.EndDoc; weiss denn jemand wie ich es machen kann, dass das Bild auch wirklich gedruckt wird??? Danke schonmal!! Gruß Manu |
Re: Grafik drucken mit Printer.Canvas
Hallo,
wird das Bild denn wenigstens in das Image geladen? Mit dem Code wird das Bild normalerweise nur sehr klein gedruckt (Verhältnis ~ 1/10) und ist meist gar nicht zu sehen. |
Re: Grafik drucken mit Printer.Canvas
Zitat:
Zitat:
Danke schonmal Gruß Manu |
Re: Grafik drucken mit Printer.Canvas
Dir ist Klar das du die DPI des Druckers umrechnen must ?
Probiere mal
Delphi-Quellcode:
das müste das Bild auf die Ganze Seite Malen.var b:Tbitmap; begin b:= Tbitmap.craete; b.loadfromfile(ExtractFilePath(Application.ExeName) + 'MyPic.bmp'); if b.width = 0 then Showmessage('Bild nicht geladen'); printer.canvas.stretchdraw(rect(0,0,printer.pagewidth,printer.pageheight),b); Printer.enddoc end; |
Re: Grafik drucken mit Printer.Canvas
Zitat:
Auch mit diesem Quellcode bekomm ich gar kein Bild angezeigt - ich habe keine Ahnung woran das liegt.... Hat noch jemand eine Idee, die mit evtl. weiterhelfen könnte?? Danke schonmal. Gruß Manu |
Re: Grafik drucken mit Printer.Canvas
und hiermit?
Delphi-Quellcode:
EDIT: vorher müsstest du natürlich noch das Bild in das Image laden.
procedure PrintImage(iLeft, iTop: integer; Img: TImage);
var GraphicRect: TRect; begin iLeft:= iLeft* 10; iTop:= iTop* 10; ZeroMemory(@GraphicRect, SizeOf(GraphicRect)); GraphicRect.Right:= Img.Picture.Graphic.Width; GraphicRect.Bottom:= Img.Picture.Graphic.Height; printer.begindoc; printer.Canvas.CopyRect(Rect(iLeft, iTop, iLeft+ GraphicRect.Right* 10, iTop+ GraphicRect.Bottom* 10), Img.Canvas, GraphicRect); printer.enddoc; end; procedure TForm1.Button1Click(Sender: TObject); begin PrintImage(50,30,image1); end; |
Re: Grafik drucken mit Printer.Canvas
Zitat:
Damit gehts leider auch nicht .... Gruß, Manu |
Re: Grafik drucken mit Printer.Canvas
Komisch bei mir funktioniert der Code, habe ihn getestet.
|
Re: Grafik drucken mit Printer.Canvas
Zitat:
Gruß, Manu |
Re: Grafik drucken mit Printer.Canvas
Ich meine ich habe den Code mit meinem Drucker getestet und es ist auch was ausgedruckt worden.
Kannst du denn nicht mal ein anderes Bild nehmen und es vorher schon mal in das Image laden und dann nochmal testen? |
Re: Grafik drucken mit Printer.Canvas
Zitat:
auch mit einem anderen Bild geht es leider nicht ... das Bild wird ja ins Image geladen, also da ist kein Fehler ... habe es nun mit *.bmp- und *.jpg- Bildern versucht .... Gruß, Manu |
Re: Grafik drucken mit Printer.Canvas
Das
![]() |
Re: Grafik drucken mit Printer.Canvas
Aber die Tinte ist nicht alle oder? Teste das doch mal mit einem PDF-Drucker, spart ausser dem Papier und Tinte. ;)
|
Re: Grafik drucken mit Printer.Canvas
Ich würde auch eher dazu tendieren den Image.Bitmap.Canvas zu nehmen, statt des Picture.Canvas. Wahrscheinlich ist es sogar egal, aber ich stehe auf dieses Picture-Konstrukt nicht besonders, weswegen ich gerne mal die Schuld da suche :lol:. Einfach mal probieren...
|
Re: Grafik drucken mit Printer.Canvas
Zitat:
Zitat:
Zitat:
Meld mich dann obs geklappt hat oder nicht. Gruß, Manu |
Re: Grafik drucken mit Printer.Canvas
Zitat:
Da bekomme ich die Meldung "Printer is not currently printing" .... hab ebensowenig aufm Papier wie vorher auch schon ... Gruß, Manu |
Re: Grafik drucken mit Printer.Canvas
Zitat:
![]() Grüße, Messie |
Re: Grafik drucken mit Printer.Canvas
Zitat:
Das Problem ist ja (dachte ich) nicht der PDF-Drucker, denn wenn ich aus Photoshop nen Bild als PDF drucke funktioniert es ja, aber wenn ich es mit meinem eigens geschriebenen Programm versuche nicht ... Na ja, werde allerdings auch deine Lösung mal ausprobieren. Danke schonmal, vielleicht fällt euch ja auch noch was anderes ein!! Gruß, Manu |
Re: Grafik drucken mit Printer.Canvas
Zitat:
Habe es gerade mal auf nem richtigen Drucker gedruckt, und dort bekomm ich es tatsächlich angezeigt und gedruckt .... Nur auf dem PDF-Drucker nicht ... verstehe gar nicht weshalb, aber nun weiss ich, dass es funktioniert ;) Danke euch allen für eure Ideen und Anregungen!!! Gruß, Manu |
Re: Grafik drucken mit Printer.Canvas
Hallo,
hast Du ne Lösung zu dem Problem mittlerweile? Habe nämlich das gleiche Problem ... manche Drucker drucken, manche nicht. PDF zb auch nicht, MDI klappt super. Es scheint an dem Bild zu liegen bei mir. Manche druckt er nämlich. |
Re: Grafik drucken mit Printer.Canvas
Zitat:
Gruß Manu |
Re: Grafik drucken mit Printer.Canvas
Evtl. etwas spät:
Versucht mal die y-Koordnate als Negativwert zu setzen, dann sollte es funktionieren. |
AW: Grafik drucken mit Printer.Canvas
bei mir geht der code, leider ist die hälfte vom bild nicht zu erkennen da sie ausserhalb ist :D und es ist etwas skaliert
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz