我曾经遇到过这样的问题,在程序中先将一条记录存进数据库中,然后再发出一条打印指令将刚才的数据输出到发票上;可是有时候数据虽然存进库里了,但打印机却不工作,请问有什么办法能判断打印指令发出后打印机是否工作了?
  热切的希望各位能帮小弟解决这个问题!

解决方案 »

  1.   

    先判断打印机状态,检测正常后再打印
    //从并行端口读取打印机状态
    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;