如何在Win9X下用程序控制将打印的默认纸张设置为自定义,然后随意根据打印需要修改自定义纸张的大小???(51分)

  • 主题发起人 主题发起人 springm
  • 开始时间 开始时间
S

springm

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在Win9X下用程序控制将打印的默认纸张设置为自定义,然后随意根据打印需要修改自定义纸张的大小???
没法子丫,好像不是在注册表中设置,我就没办法了。。。。。。
 
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

{Set to legal}
pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
{pDMode^.dmPaperSize := DMPAPER_LEGAL;
changed by wulianmin}
pDMode^.dmPaperSize := DMPAPER_FANFOLD_US;
end
else

begin

{Set to custom size}
pDMode^.dmFields := pDMode^.dmFields or
DM_PAPERSIZE or
DM_PAPERWIDTH or
DM_PAPERLENGTH;
pDMode^.dmPaperSize := DMPAPER_USER;
pDMode^.dmPaperWidth := x {SomeValueInTenthsOfAMillimeter};
pDMode^.dmPaperLength := y {SomeValueInTenthsOfAMillimeter};
end;

{Set the bin to use}
pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
pDMode^.dmDefaultSource := DMBIN_MANUAL;

GlobalUnlock(hDMode);
end;

end;

Printer.PrinterIndex := Printer.PrinterIndex;
end;
 
手动的多简单,机器完全代替人多麻烦
 
这个问题已经有人提问过了.到已答问题里查询"打印"一下吧..
 
我是指程序在打印机的默认纸张中设置,一般操作是打印机-属性-纸张-纸张大小-自定义-设置自定义大小,
而斗士所说的是自定义纸张大小的打印!!
 
springm:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
用程序编写弹出控制面板->打印机
 
多人接受答案了。
 
后退
顶部