Papierformat wechseln

myownshadow

Grünschnabel
Hallo !

Ich stehe kurz vor der Verzweiflung.
Ich möchte ein anderes Papierformat einstellen, z.B. von "Letter" nach "A4"
Alle meine Versuche mit Setprinter oder DocumentProperties sind gescheitert.
Es gelingt mir die aktuellen Einstellungen auszulesen, jedoch geschieht kein Wechsel
In cp befinden sich alle verfügbaren Papierformate des Druckers,
ebenso wie MeinPapier auch die aktuelle Papierformatnummer (A4=9 bzw. Letter=1) enthält.
-----------------------------------------------------------------------------------------
procedure DruckerPapierA4setzen;
const
MaxPapers = 2048; // max. Anzahl der Papierformate, die in Liste aufgenommen werden
var
cp : array[0..MaxPapers-1,0..63] of char;
ADevice : array[0..255] of char;
ADriver : array[0..255] of char;
APort : array[0..255] of char;
hdevice : tHandle;
pMyPrnSettings : ^tDevMode;{ tPrinterSettings}
MeinPapier : shortint;

Begin
printer.GetPrinter(ADevice, ADriver, APort, hDevice);
DeviceCapabilities(Adevice,nil,DC_PAPERNAMES,@cp,nil);
pMyPrnSettings := GlobalLock(hDevice);
MeinPapier := pMyPrnSettings.dmPaperSize;
if MeinPapier <> DMPAPER_A4 then
Begin
pMyPrnSettings.dmPaperSize := DMPAPER_A4;
GlobalUnlock(hDevice);
printer.SetPrinter(@ADevice, @ADriver, @APort, hDevice);
end
else
GlobalUnlock(hDevice);

end;

----------------------------------------------------------------
Was mache ich falsch ? Kann mir bitte jemand helfen ?
 

Neue Beiträge

Zurück