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 Druck Image auf PDF kommt ohne Farbe (https://www.delphipraxis.net/104030-druck-image-auf-pdf-kommt-ohne-farbe.html)

gullatrulla 26. Nov 2007 12:42


Druck Image auf PDF kommt ohne Farbe
 
Hi Delphi Folks

Ich plage mich zur Zeit mit folgendem Phänomen herum:

Ich drucke ein farbiges TImage auf meinen PDF-Drucker (PDF Creator 0.9.3).

Wenn der Standartdrucker von Windows auf diesem PDF-Drucker steht
funktioniert der Druck korrekt in Farbe. Wenn aber der Standartdrucker
z.B. auf einem HP Laserjet 2100 definiert ist, und ich den Drucker
mittels Printer.Printerindex übersteuere, wird das Image schwarz/weiss
im PDF ausgegeben.

[delphi]

procedure TForm1.Button1Click(Sender: TObject);
var Rect : TRect;
begin
Printer.PrinterIndex := 1; {ist PDF-Drucker}
Printer.BeginDoc;

with Printer.Canvas do begin
Rect := Bounds(1500, 500, 1000 , 500);
StretchDraw(Rect,Image.Picture.MetaFile);
end;
Printer.EndDoc;
end;

Wenn ich mittels TPrintDialog den Drucker übersteuere funktioniert es auch.
Es soll im Programm automatisch (ohne PrintDialog) funktionieren.

Wo liegt mein Denkfehler. Oder hat dies jemand anderes von Euch
auch schon gehabt (und evtl. sogar gelöst)

Herzlichen Dank zum voraus.
Roland

MStoll 26. Nov 2007 13:14

Re: Druck Image auf PDF kommt ohne Farbe
 
Hi,

versuch's mal so. Das "zwingt" den Drucker, ein Farbdrucker zu sein.


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Rect : TRect;
  Device, Driver, Port: array[0..80] of Char;
  DevMode: THandle;
  pDevmode: PDeviceMode;
begin
Printer.PrinterIndex := 1; {ist PDF-Drucker}
     // Start
     Printer.GetPrinter(Device, Driver, Port, DevMode);

     if Devmode <> 0 then
     begin
          pDevMode := GlobalLock(Devmode);
          if pDevmode <> nil then
             try
                with pDevmode^ do
                begin
                     dmColor := DMCOLOR_COLOR;
                     //dmColor := DMCOLOR_MONOCHROME;
                end;
             finally
                GlobalUnlock(Devmode);
             end;
     end;

    // Ende
 
Printer.BeginDoc;

with Printer.Canvas do begin
Rect := Bounds(1500, 500, 1000 , 500);
StretchDraw(Rect,Image.Picture.MetaFile);
end;
Printer.EndDoc;
end;
Gruß
Michael

gullatrulla 26. Nov 2007 13:46

Re: Druck Image auf PDF kommt ohne Farbe
 
Hallo MStoll

Jaaaaaaaaaaaaaaaaaaaaaa, funzt!

Dass ich den PDF-Drucker als Farbdrucker "übersteuern"
muss wäre mir nicht im Traum eingefallen.

Herzlichen Dank für Deine Hilfe.
Roland


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