我用的是Epson LQ-300K+针式打印机,竟然无法打印中文
使用控制命令也不行,谁能帮我!
ar
  LPT1File: TextFile;
  sTemp: string;
  x: integer;
begin
  AssignFile(LPT1File, 'LPT1');
  try
    Rewrite(LPT1File);
//    Writeln(LPT1File, #27 + '@');
    write(LPT1File, chr(28) + chr(ord('&'))); //Chr(28)   即   FS
//    write(LPT1File, chr(28) + chr(ord('2'))); 
    Writeln(LPT1File, #28#38);
    Writeln(LPT1File, '测试');
    Writeln(LPT1File, #28#46);
  finally
    CloseFile(LPT1File);
  end;

解决方案 »

  1.   

    接分!
    EPSON LQ300没有中文字库,打不了中文。
    自己画图吧。
      

  2.   

    打印测试页没问题
    Epson LQ-300K+针式打印机有中文字库的
      

  3.   

    一. 现象描述:
    在DOS系统中打印输出的中文是乱码,但英文与数字正常。调整打印机控制面板的字体键不起作用。二.原因分析:
    在DOS、Unix等非Windows系统中进行打印时,调用的是打印机自带的硬字库,如果控制面板的字体设置为非中文方式,就会出现打印英文与数字正常,而中文乱码的情况。
    说明:
    1. 打印机控制面板的字体出厂默认为“宋体”,一般无需更改。
    2. Windows系统中通过打印机驱动进行打印时,是按照图形方式进行打印,所以面板上的字体设置不会影响到打印效果。三、解决方法:
     1. 打开打印机,确保控制面板上的暂停灯与缺纸灯熄灭; 
     2. 按住暂停键(3秒),直到暂停灯开始闪烁,再松开暂停键; 
     3. 此时可通过面板上的字体键设置字体,将字体设置成宋体模式; 
     4. 当选择字体完毕后,按下暂停键,暂停灯熄灭,这样就完成了设置字体的全部步骤,在DOS系统中即可正常打印。*****************************
    上面是我在Epson官方网站上看到的,有点明白原因了,但我按照解决方法来做也不能成功,很奇怪,难道我买的这台打印机有问题?!
      

  4.   

    找到一些资料,谁能帮我把下面链接的VB代码翻译成DELPHI,我再给200分或更多分,谢谢:
    http://support.microsoft.com/default.aspx?scid=kb;zh-cn;282474
      

  5.   

    提供一个函数,它可以直接发送数据到打印机,楼主试试:uses SysUtils, Printers, WinSpool;function  SendDataToPrinter(sDeviceName, sDocName, sData: String): Boolean;
    var
      bResult  : Boolean;
      hPrinter : Cardinal;
      tDocInfo : _DOC_INFO_1A;
      iWrited  : Cardinal;
    begin
      bResult := OpenPrinter(PChar(sDeviceName), hPrinter, nil);
      if bResult then
      begin
        tDocInfo.pDocName := PChar(sDocName);
        tDocInfo.pOutputFile := nil;
        tDocInfo.pDatatype := nil;
        bResult := StartDocPrinter(hPrinter, 1, @tDocInfo) <> 0;
        if bResult then
        begin
          bResult := StartPagePrinter(hPrinter);
          bResult := bResult and WritePrinter(hPrinter, @sData[1], Length(sData), iWrited);
          bResult := bResult and EndPagePrinter(hPrinter);
          EndDocPrinter(hPrinter);
        end;
        ClosePrinter(hPrinter);
      end;
      Result := bResult;
    end;......
    SendDataToPrinter('打印机名称', 'A Test', #28'&'#28#38'测试'#28#46);
    ......