Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#12

AW: TPrinter, Papierformat

  Alt 12. Apr 2013, 23:21
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.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat