Der Code aus dem Link von DeddyH funktioniert bei mir nur wenn ich zusätzlich Höhe und Breite mitgebe.
Delphi-Quellcode:
// lokales Umstellen
var
Device, Driver, Port: array[0..80] of Char;
DevMode: THandle;
pDevmode: PDeviceMode;
Papers: TPaperInfos;
begin
GetPaperInfo(Papers, Printer.PrinterIndex);
Printer.GetPrinter(Device, Driver, Port, DevMode);
if Devmode <> 0 then
begin
pDevMode := GlobalLock(Devmode);
if pDevmode <> nil then
try
with pDevmode^ do
begin
dmPapersize := ListBox1.ItemIndex;
dmPaperLength := Papers[ListBox1.ItemIndex].papersize.Y;
dmPaperWidth := Papers[ListBox1.ItemIndex].papersize.X;
dmFields := dmFields or DM_PAPERSIZE OR DM_PAPERLENGTH OR DM_PAPERWIDTH;
end;
finally
GlobalUnlock(Devmode);
end;
end;
end;
GetPaperInfo ist einem
Code von PeterPiano entliehen.