procedure TMain.PrintBtnClick(Sender: TObject);
var
nCopies : Integer;
ADevice, ADriver, APort: array [0..255] of Char;
ADeviceMode: THandle;
DevMode: PDevMode;
Margins : TPoint;
Begin
with Printer do begin
GetPrinter (ADevice, ADriver, APort, ADeviceMode);
SetPrinter (ADevice, ADriver, APort, 0);
GetPrinter (ADevice, ADriver, APort, ADeviceMode);
DevMode := GlobalLock(ADeviceMode);
if NOT Assigned(DevMode) then ShowMessage('Can''t set printer.')
else Begin
with DevMode^ do begin
if CurLabel.Orientation = lrHorizontal then Begin
dmOrientation := DMORIENT_LANDSCAPE;
dmPaperLength := MulDiv(CurLabel.Width, 254, TWIPS);
dmPaperWidth := MulDiv(CurLabel.Height, 254, TWIPS);
End
else Begin
dmOrientation := DMORIENT_PORTRAIT;
dmPaperLength := MulDiv(CurLabel.Height, 254, TWIPS);
dmPaperWidth := MulDiv(CurLabel.Width, 254, TWIPS);
End;
dmFields := dmFields or DM_ORIENTATION;
dmPaperSize := DMPAPER_USER;
dmFields := dmFields or DM_PAPERSIZE or DM_PAPERLENGTH or DM_PAPERWIDTH;
end;
GlobalUnlock(ADeviceMode);
SetPrinter(ADevice, ADriver, APort, ADeviceMode);
end;
end;
nCopies := 1;
Printer.Title := 'LabelWriter Output';
Printer.BeginDoc;
Printer.EndDoc;
End;