- 註冊時間
 - 2006-3-13 
 - 最後登錄
 - 2025-7-23 
 - 在線時間
 - 675 小時 
 - 閱讀權限
 - 200 
 - 積分
 - 417 
 - 帖子
 - 1109 
 - 精華
 - 0 
 - UID
 - 2 
  
 
 
 
    
 | 
 
- // 在执行打印前调用以下函数:
 
 - // 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;
 
  複製代碼 |   
 
  
 |