- 註冊時間
- 2006-3-13
- 最後登錄
- 2025-1-10
- 在線時間
- 673 小時
- 閱讀權限
- 200
- 積分
- 417
- 帖子
- 1107
- 精華
- 0
- UID
- 2
  
|
Delphi 開發 - 改變列印紙張大小
- // 在執行打印前調用以下函數:
- // x, y: 紙張尺寸, 單位是 0.1mm
- procedure SetPaperSize(X, Y: Integer);
- 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
- if (x = 0) or (y = 0) then
- begin
- {設置合法的紙張大小}
- pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
- pDMode^.dmPaperSize := DMPAPER_FANFOLD_US; // 合法的紙張大小標示
- end
- else
- begin
- {設置用户自定義紙張}
- pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE or DM_PAPERWIDTH or DM_PAPERLENGTH;
- pDMode^.dmPaperSize := DMPAPER_USER; // 設置為用户自定義紙張標示
- pDMode^.dmPaperWidth := x; // 紙張寬度
- pDMode^.dmPaperLength := y; // 紙張長度
- end;
- {設定紙張来源}
- pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
- pDMode^.dmDefaultSource := DMBIN_MANUAL;
- GlobalUnlock(hDMode);
- end;
- end;
- end;
複製代碼 |
|