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

  • 主题发起人 主题发起人 xiaofeng_cxy
  • 开始时间 开始时间
X

xiaofeng_cxy

Unregistered / Unconfirmed
GUEST, unregistred user!
自定义纸张大小函数如下
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时,无论怎么设定,打印机的纸张大小都是不变的???请各位高手指教。。
在线恭候。。。。
 
可能跟驱动程序有关,试试安装新的驱动程序。
我们有1台HP LaserJet1200,挂98时,网内的2K/XP访问不了。挂2K时,还必须安装98的驱动,
否则98访问不了。而像HP LaserJet5000不存在问题。
 
win98可以,2000/xp不行
 
我用的是HP 1100,程序里用自定义的纸张,只能打印一部分,后来在打印机的属性里把纸张也设置成自定义的,就可以了。
你试试。
 
后退
顶部