Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi kein Ausdruck im Sparmodus (https://www.delphipraxis.net/116570-kein-ausdruck-im-sparmodus.html)

punker-lili 2. Jul 2008 11:12


kein Ausdruck im Sparmodus
 
Hiho.. ich hab folgende Prozedure geshcrieben, damit ich Bilder ausdrucken kann. Leider funktioniert das nicht, wenn ich meinen Drucker auf Sparmodus stelle... Woran liegt das?

Delphi-Quellcode:
Procedure DruckPos(iLeft, iTop: integer; Graphic: TGraphic);
var i,breite,hoehe,zoom,start:integer;
begin
//Änderung Breite
  breite := GetDeviceCaps(Printer.Handle, HORZRES);//Bestimmung Blattbreite in Pixel
  zoom:=breite div graphic.Width;
  if zoom = 0 then
   begin
    printer.Orientation:=polandscape;
    breite := GetDeviceCaps(Printer.Handle, HORZRES);//Bestimmung Blattbreite in Pixel
    zoom:= breite div graphic.Width;
    //Meldung abgeben an Benutzer
   end;
//Änderung Höhe
  hoehe:=GetDeviceCaps(Printer.Handle,VERTRES);
    for i:=0 to (graphic.Height div hoehe) do
     begin
      start:= itop+i*GetDeviceCaps(Printer.Handle,VERTRES);
      SetWindowOrgEx(Printer.Handle,iLeft,start,nil);
      Printer.BeginDoc;
      SetMapMode(Printer.Canvas.Handle, MM_ISOTROPIC);
      SetWindowExtEx(Printer.Canvas.Handle, 1, 1, nil);
      SetViewportExtEx(Printer.Canvas.Handle, Zoom, Zoom, nil);
      Printer.Canvas.Draw(iLeft, iTop, Graphic);
      Printer.EndDoc;
     end;
end;
ich hab auch noch ne Frage...GetDeviceCaps(Printer.Handle,VERTRES) gibt mir bloß die Anzahl der Spalten wieder.. ich brauch aber die Höhe in Pixel?! Wie kann ich das Ändern? Gibts nen anderen Befehl dafür?

MfG Anna

Namenloser 2. Jul 2008 11:19

Re: kein Ausdruck im Sparmodus
 
Hallo,

zum ersten problem hab ich auch keine Antwort parat, aber zu:
Zitat:

Zitat von punker-lili
ich hab auch noch ne Frage...GetDeviceCaps(Printer.Handle,VERTRES) gibt mir bloß die Anzahl der Spalten wieder.. ich brauch aber die Höhe in Pixel?! Wie kann ich das Ändern? Gibts nen anderen Befehl dafür?

Probier mal GetDeviceCaps(Printer.Handle,HORZRES)

[edit]Äh sorry, quatsch... hab mich verlesen[/edit]


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