Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Druckprobleme .. sehr seltsam (https://www.delphipraxis.net/82057-druckprobleme-sehr-seltsam.html)

waschlap 7. Dez 2006 13:12


Druckprobleme .. sehr seltsam
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

ich hätte mal wiede eine Frage an euch und zwar :

Ich habe ein Chart welches ich über ein virtuelles Pic als PDF drucken lasse, nun habe ich dss Prob wenn ich das PDF drucken will lauter kleine Punkte habe so eine Art von Raster, wenn ich das PDF file anschaue ist dieses Raster aber nicht vorhanden.

Mit diesem Befehl lasse ich das virtuelle Bild für den Druck entstehen:
VirtPic := Chart1.TeeCreateBitmap(clwhite,Rect(0,0,Chart1.Wid th,Chart1.Height));

Mit dem schicke ichs an den Drucker:
Printer.Canvas.StretchDraw(Rect(Aleft,Atop,Aright, Abottom),VirtPic);

und wenn ich es dann vom PDF aus drucke bekomme ich lauter so Punkte.

Im Anhang seht ihr ein sauberes PDF File wenn man dieses Ausdruck erscheint das Raster, welches ich meine :)

Vielen Dank für Eure Hilfe.

Mfg

Manu

P.s: Schicke ich es direkt an den Drucker kommt es einwandfrei. Bevor jetzt Fragen kommen warum das nicht immer gleich an den Drucker weil dies aufgehoben werden muss.

SirThornberry 7. Dez 2006 13:43

Re: Druckprobleme .. sehr seltsam
 
Das kommt durch StretchDraw. Dabei müssen die zuvielen Pixel bzw. die fehlenden berechnet werden. Wenn du zuvor keinen Modus setzt wie gestreckt werden soll können diese Punkte bei dem Standardverfahren entstehen.

waschlap 7. Dez 2006 13:57

Re: Druckprobleme .. sehr seltsam
 
Und wie kann ich das dann ändern??

Mfg

Manu

SirThornberry 7. Dez 2006 14:00

Re: Druckprobleme .. sehr seltsam
 
Indem du mit SetStretchBltMode den Modus änderst

TStringlist 7. Dez 2006 15:23

Re: Druckprobleme .. sehr seltsam
 
Hallo, so ein ähnliches Problem hatte ich auch einmal. Die Ursache lag letztlich darin, dass das Bitmap, indem ich die Druckseite aufbaute und welches ich dann stretchen wollte, nur ein default-mäßiges 16bit-Bitmap ("PixelFormat"=pf16bit) war. Und das heißt natürlich: Ein pf24bit-Weiß (=255,255,255) ist bei einer nur 16bit-Darstellung dann eben nur noch mehr ein (255,255)-Weiß, also im Grunde doch event. etwas anderes. Als ich für mein Bitmap dann extra eine pf24bit-Einstellung wählte, verschwand auch dieses Punktegitter.


PS. Die Canvas.Pixels[]-Methode gibt zwar ein pf16bit-Weiß wieder als ein (255,255,255)-Weiß zurück, aber die Stretchfunktion macht das intern eben wahrscheinlich anders. Es könnte also gut sein, dass dieses (255,255)-Weiß da nur noch mehr in ein sehr sehr helles Grau übersetzt wird und wenn dieses dann gestretcht wird, dann bekommt dieses (falsche) "Weiß" eben ab und zu ein kleines schwarzes Pünktchen dazu.

(edit: der Deutschkurs hatte Grammatikfehler reklamiert :stupid: )

waschlap 8. Dez 2006 06:38

Re: Druckprobleme .. sehr seltsam
 
Mal ne frage sirthornberry, wie so habe ich das reaster nicht wenn ich es direkt an den drucker schicke ?

Habe auch das mit dem SetStretchBltMode aber funzt auch nicht so wirklich an welcher Stelle muss das zum einsatz kommen?

mfg manu


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 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