Thema: Bild drucken

Einzelnen Beitrag anzeigen

axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Bild drucken

  Alt 2. Apr 2005, 01:05
Falls es dir noch hilft: Hier hab ich mal alle Ränder eines bestimmten Druckers herausfinden wollen. Das Ergebnis der Funktionen ist in Millimetern. Aber zum Drucken brauchst du die Ränder links und oben nicht zu berücksichtigen, da der Canvas des Druckers bei 0,0 auf dem Papier schon sichtbar ist.

Delphi-Quellcode:
function TPrinterSettings.DrRand1mm: integer;
var dpi: integer;
begin //linker Rand
 dpi := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
 if dpi <> 0 then
 result:=round((GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX)/dpi)*25.4) ELSE
 result := 0;
end;

function TPrinterSettings.DrRand2mm: integer;
var dpi: integer;
begin //oberer Rand
 dpi := GetDeviceCaps(Printer.Handle, LOGPIXELSY);
 if dpi <> 0 then
 result:=round((GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY)/dpi)*25.4) ELSE
 result := 0;
end;

function TPrinterSettings.DrRand3mm: integer;
var dpi: integer;
begin //rechter Rand
 dpi := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
 if dpi <> 0 then
 result:=round((GetDeviceCaps(Printer.Handle, PHYSICALWIDTH)-
               GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX)-
               GetDeviceCaps(Printer.Handle, HORZRES))/dpi*25.4) ELSE
 result := 0;
end;

function TPrinterSettings.DrRand4mm: integer;
var dpi: integer;
begin //rechter Rand
 dpi := GetDeviceCaps(Printer.Handle, LOGPIXELSY);
 if dpi <> 0 then
 result:=round((GetDeviceCaps(Printer.Handle, PHYSICALHEIGHT)-
               GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY)-
               GetDeviceCaps(Printer.Handle, VERTRES))/dpi*25.4) ELSE
 result := 0;
end;
  Mit Zitat antworten Zitat