Hallo,
ich habe einen Brother 9200DX (Labeldrucker für Schriftbänder) und möchte von Delphi aus den Druckerdialog aufrufen.
Unter Windows habe ich Default-Druckereigenschaften gesetzt, diese werden aber von Delphi mit dem Standard DIN A4-Format überschrieben, was andere Programme wie CorelDraw nicht machen.
Mit folgendem Code möchte ich meine Werte für Breite und Höhe wieder setzen:
Delphi-Quellcode:
var
Device : array[0..255] of char;
Driver : array[0..255] of char;
Port : array[0..255] of char;
hDMode : THandle;
pDMode : PDEVMODE;
begin
...
Printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then
begin
pDMode^.dmFields := pDMode^.dmFields or
DM_PAPERSIZE or
DM_PAPERWIDTH or
DM_PAPERLENGTH;
pDMode^.dmPaperSize := DMPAPER_USER;
pDMode^.dmPaperWidth := 240; // 24mm {SomeValueInTenthsOfAMillimeter};
pDMode^.dmPaperLength := 650; // 65mm {SomeValueInTenthsOfAMillimeter};
GlobalUnlock(hDMode);
end;
end;
...
end;
Für die Breite Funktioniert dies, allerdings funktioniert das Setzen von dmPaperWidth nicht.
Statt der gewünschten 24mm steht im Drucker-Eigenschaftsdialog immer 36mm und ich weiß nicht wie die dahin kommen und wie ich sie ändern kann.