turbo pascal/c 实现Dos下控制(HP等)打印机打印汉字的编程思路和代码?谢谢

解决方案 »

  1.   

    //这个是我今天中午答别人的,你参考一下:  Assignfile(MyFile,'lpt1');//'com1,com2...'
      Rewrite(MyFile);
      strTemp := '中国人';
      writeln(MyFile, FormatPRNString(strTemp));
      System.CloseFile(MyFile);
    Function FormatPRNString(str:string):string;
    //将要打印的字符串转换成相应打印格式,适应于:EPSON TM300系统列
    //刚写的,看看吧
    var
      ch:char;
      i:integer;
      chinese:boolean;
    begin
      chinese:=false;
      i:=1;
      while i<=length(str) do
      begin
        ch:=str[i];
        if ch>#127 then
          if str[i+1]>#127 then    //一个完整折汉字
          begin
            if not chinese then result:=result+#28+#38;
            chinese:=true;
            result:=result+ch+str[i+1];
            inc(i);
          end
          else                     //半个汉字
            begin
              if chinese then result:=result+#28+#46;
              chinese:=false;
              result:=result+#32;
            end
        else                       //ASCII码
          begin
            if chinese then result:=result+#28+#46;
            chinese:=false;
            result:=result+ch;
          end;
        inc(i);
      end;
    end;
     
     
      

  2.   

    如果没有带硬字库的打印也一样打印出汉字来的,应怎样打呢?如EPSON 210PD的打印机应怎样对端口打印汉字呢?