我要批量打印一批单据,在打印时,程序如何知道打印机现在是缺纸状态呢?

解决方案 »

  1.   

    这个要看底层的api函数了,你要查查打印的函数。
      

  2.   

    汇编的方法如下:   
      //从并行端口读取打印机状态   
      function   GetPrinterStatus:byte;   
      asm   
          MOV   DX,$379;   
          IN   AL,DX;   
      end;   
      //获取打印机是否出错   
      function   CheckPrinter:boolean;   
      var   
          temp:byte;   
      begin   
          temp:=GetPrinterStatus;   
          Result:=not   (   ((temp   and   $80)=0)   //打印机忙   
          or   ((temp   and   $20)<>0)       //打印机缺纸   
          or   ((temp   and   $10)=0)         //打印机未联机   
          or   ((temp   and   $08)=0)   );   //打印机出错;   
      end;   
    ---偶尔看过,存下来的,记不得转自何处了.
      

  3.   

    一般是直接丢给打印机
    不过PrintDocument有两个事件BeginPrint和EndPrint可以做打印是否成功的判断
    如果想监控打印机,估计只能调用底层的API了
      

  4.   

    批量打印的话 程序中用循环一张一张打印的 用SLEEP控制时间 打印机不工作的时候程序还是在循环的正常发送 
    除非你能抓住打印机接口状态 但打印机也不同啊 这个很难得 而且打印机和打印机不同 接口也不是通用的