自定义打印需要在Windows打印机的属性设置为自定义,否则打印机只是动一下而已。希望对你有用。

解决方案 »

  1.   

    一样的打印机。设置自定义。自动进纸。procedure SetPrinter(W:Integer);
    var
      ADevice,ADriver,APort:array[0..255] of Char;
      DeviceHandle:THandle;
      DevMode:PDeviceMode;
    begin
      Printer.GetPrinter(ADevice,ADriver,APort,DeviceHandle);
      if DeviceHandle = 0 then
      begin
        Printer.PrinterIndex:=Printer.PrinterIndex;
        Printer.GetPrinter(ADevice,ADriver,APort,DeviceHandle);
      end;
      if DeviceHandle = 0 then
        Raise Exception.Create('Could not initialize TDeviceMode Structure')
      else begin
        DevMode:=GlobalLock(DeviceHandle);
        DevMode^.dmFields:=DevMode^.dmFields or DM_PAPERLENGTH;
        DevMode^.dmPaperLength:=w;
        DevMode^.dmFields:=DevMode^.dmFields or DM_PAPERWIDTH;
        DevMode^.dmPaperWidth:=279;
        Quickreport1.Page.Length:=w;
        Quickreport1.Page.Width:=279;
      end;  if not(DeviceHandle = 0) then
        GlobalUnlock(DeviceHandle);
    end;