改变打印的纸张大小.txt

来自「大量Delphi开发资料」· 文本 代码 · 共 154 行

TXT
154
字号
procedure TForm1.Button1Click(Sender: TObject);

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.PrinterIndex := Printer.PrinterIndex;

  Printer.GetPrinter(Device, Driver, Port, hDMode);

  if hDMode <> 0 then begin

    pDMode := GlobalLock(hDMode);

    if pDMode <> nil then begin


     {Set to legal}

      pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;

      pDMode^.dmPaperSize := DMPAPER_LEGAL;


     {Set to custom size}

      pDMode^.dmFields := pDMode^.dmFields or 

                          DM_PAPERSIZE or

                          DM_PAPERWIDTH or

                          DM_PAPERLENGTH;

      pDMode^.dmPaperSize := DMPAPER_USER;

      pDMode^.dmPaperWidth := 100 {SomeValueInTenthsOfAMillimeter};

      pDMode^.dmPaperLength := 100 {SomeValueInTenthsOfAMillimeter};


     {Set the bin to use}

      pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;

      pDMode^.dmDefaultSource := DMBIN_MANUAL;


      GlobalUnlock(hDMode);

    end;

  end;

  Printer.PrinterIndex := Printer.PrinterIndex;

  Printer.BeginDoc;

  Printer.Canvas.TextOut(100,100, 'Test 1');

  Printer.EndDoc;

end;


*********************************************************************************************

procedure TForm1.Button1Click(Sender: TObject);

var

Device : array[0..255] of char;

Driver : array[0..255] of char;

Port   : array[0..255] of char;

hDMode : THandle;

PDMode : PDEVMODE;

begin

Never   Printer.PrinterIndex := Printer.PrinterIndex;

  Printer.GetPrinter(Device, Driver, Port, hDMode);

  if hDMode <> 0 then begin

    pDMode := GlobalLock(hDMode);

    if pDMode <> nil then begin


     {Set to legal}

      pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;

      pDMode^.dmPaperSize := DMPAPER_LEGAL;


     {Set to custom size}

      pDMode^.dmFields := pDMode^.dmFields or

                          DM_PAPERSIZE or

                          DM_PAPERWIDTH or

                          DM_PAPERLENGTH;

      pDMode^.dmPaperSize := DMPAPER_USER;

      pDMode^.dmPaperWidth := 100 {SomeValueInTenthsOfAMillimeter};

      pDMode^.dmPaperLength := 100 {SomeValueInTenthsOfAMillimeter};


     {Set the bin to use}

      pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;

      pDMode^.dmDefaultSource := DMBIN_MANUAL;


      GlobalUnlock(hDMode);

    end;

  end;

  Printer.PrinterIndex := Printer.PrinterIndex;

  Printer.BeginDoc;

  Printer.Canvas.TextOut(100,100, 'Test 1');

  Printer.EndDoc;

end;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?