这里有程序procedure TForm1.Button1Click(Sender: TObject);
var
  Device:Array[0..256] of Char;
  Driver:Array[0..256] of Char;
  Port:Array[0..32] of Char;
  hDMode:THandle;
  pDMode:PDevMode;
begin
  Printer.GetPrinter(Device,Driver,Port,hDMode);
  if hDMode<>0 then
    pDMode:=GLobalLock(hDMode);
  if pDMode<>nil then
  begin
    pDMode^.dmPaperSize:=256;
    pDMode^.dmPaperLength:=1140;
    pDMode^.dmPaperWidth:=1900;
    pDMode^.dmFields:=pDMode^.dmFields or DM_PAPERSIZE;
    pDMode^.dmFields:=pDMode^.dmFields or DM_PAPERLENGTH;
    pDMode^.dmFields:=pDMode^.dmFields or DM_PAPERWIDTH;
  end;
  ResetDC(Printer.Handle,pDMode^);
  GLobalUnLock(hDMode);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
  With Printer do
  begin
    BeginDoc;
    Canvas.TextOut(10,10,'fkgfjhg');
    EndDoc;
  end;
end;
打印出来还是A4
是不是在WIN2000中还要设置
打印机是Epson Stylus COLOR 680 ESC/P 2
各位帮帮忙

解决方案 »

  1.   

    在WIN2K中打印机设置里,有个‘文件’菜单下有个‘服务器属性’,在里面可以设置自定义纸张,然后在相应的打印机‘属性’里设置纸张大小为刚才自定义的纸张名称即可!
      

  2.   

    和你的打印机本身有关系,win2000支持打印机最大打印尺寸,不支持自定义大小的。
      

  3.   

    请问sky_234(流浪者) 
     然后在相应的打印机‘属性’里设置纸张大小为刚才自定义的纸张名称即可!
    在哪里设置.我在打印机的'打印首选页'的'高级'里的'纸张大小'没有我的定义纸张,而在
    文件’菜单下有个‘服务器属性’里的'所有格式'有我的定义纸张.
    这是不是我的打印机不支持自定义大小.