Thema: Delphi Druckerbreite einstellen

Einzelnen Beitrag anzeigen

dagegen

Registriert seit: 6. Okt 2004
Ort: Bochum
5 Beiträge
 
#1

Druckerbreite einstellen

  Alt 24. Nov 2004, 16:23
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.
  Mit Zitat antworten Zitat