Hier ein paar Funktionen die dir helfen könnten:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| // Seitenbreite function TCustomDrucker.GetPageWidth: Integer; begin Result := GetDeviceCaps(Printer.Handle, PHYSICALWIDTH); end;
// Seitenhöhe function TCustomDrucker.GetPageHeight: Integer; begin Result := GetDeviceCaps(Printer.Handle, PHYSICALHEIGHT); end;
// Linker nicht bedruckbarer Abstand function TCustomDrucker.GetPageOffsetLeft: Integer; begin Result := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX); end;
// Rechter nicht bedruckbarer Abstand function TCustomDrucker.GetPageOffsetRight: Integer; begin Result := GetPageWidth - GetPageOffsetLeft - GetDeviceCaps(Printer.Handle, HORZRES); end;
// oberer nicht bedruckbarer Abstand function TCustomDrucker.GetPageOffsetTop: Integer; begin Result := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY); end;
// unterer nicht bedruckbarer Abstand function TCustomDrucker.GetPageOffsetBottom: Integer; begin Result := GetPageHeight - GetPageOffsetTop - GetDeviceCaps (Printer.Handle, VERTRES) end; |
Hier der Code wie du den druckbaren Bereich in der Höhe und Breite ermitteln kannst:
Quelltext
1: 2: 3:
| var DruckbarHoehe, DruckbarBreite : Integer; // nicht vergessen DruckbarHoehe := GetPageHeight - GetPageOffsetTop - GetPageOffsetBottom; DruckbarBreite := GetPageWidth - GetPageOffsetLeft - GetPageOffsetRight; |
Achja, offset ist der Abstand des nicht druckbaren Bereichts in dem Fall.