为什么在使用HP LaserJet 1000系列的时候,我用程序设定自定义纸张大小不起作用,而别的型号可以???

xiaofeng_cxy 2003-09-17 05:36:48
自定义纸张大小函数如下
procedure SetPageSize(Prnt: TPrinter; PageWidth, PageHeight: Integer);
var
Device, Driver, Port: array[0..255] of Char;
hDMode: THandle;
pDMode: PDevMode;
begin
//Prnt.PrinterIndex := Prnt.PrinterIndex;
Prnt.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then
begin
try
pDMode := GlobalLock(hDMode);
if pDMode <> nil then
begin
pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
pDMode^.dmPaperSize := dmPaper_User;
//pDMode^.dmPaperSize := DMPAPER_FANFOLD_US;
//pDMode^.dmPaperSize := dmPaper_Last;
pDMode^.dmFields := pDMode^.dmFields or dm_PaperWidth;
pDMode^.dmPaperWidth := PageWidth;
pDMode^.dmFields := pDMode^.dmFields or dm_PaperLength;
pDMOde^.dmPaperLength := PageHeight;
//pDMode^.dmFields := pDMode^.dmFields or dmBin_Manual;
//pDMode^.dmDefaultSource := dmBin_Manual;

end;
ResetDC(Prnt.Handle, pDMode^);
finally
GlobalUnLock(hDMode);
end;
end;
//Printer.PrinterIndex := Printer.PrinterIndex;
end;

先后使用了EPSON1600K,HP LaserJet 6L,设定都是没问题的。可是在使用HP LaserJet1000、1005、1010、1100时,无论怎么设定,打印机的纸张大小都是不变的???请各位高手指教。。
在线恭候。。。。
...全文
125 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
513 2004-01-08
  • 打赏
  • 举报
回复
同样问题,同样急,
xiaofeng_cxy 2003-09-18
  • 打赏
  • 举报
回复
请有过类似经验的高手指教啊!!
急急急。。。。!!!!
xiaofeng_cxy 2003-09-17
  • 打赏
  • 举报
回复
1000是无论你怎么设置,打印机的纸张大小都是A4
而1010则是用的打印机设置里的默认纸张大小。。
xiaofeng_cxy 2003-09-17
  • 打赏
  • 举报
回复
我设置的纸张大小肯定是在打印允许的范围之内的。。
而同样是HP的LaserJet 6L,却完全没有这样的问题。。。
还请高手作答啊。。
suwen88 2003-09-17
  • 打赏
  • 举报
回复
因为激光打印机对纸张的大小是有限制的,具体原因我也不是很清除

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧