2014-12-04 65 views
1

我一直在尝试使用热敏打印机“Bixolon SRP-F310”并使用JAVA的PrintService打印一些文本。检测到打印机并且在调用打印功能时没有异常。我可以在杯子的Web界面看到打印事件被调用。但是,打印机不打印并显示错误消息“找不到页面!”可以在杯子的网络界面中看到。任何帮助将不胜感激。我已经包含了杯子网页界面和错误日志的截图。杯的使用JAVA在“Bixolon热敏打印机”上打印,“未找到任何页面!”错误

import javax.print.*; 
import java.util.Arrays; 
import java.util.List; 

public class Printer { 
    static Printer INSTANCE; 

    public static void main(String[] args) { 
     INSTANCE = new Printer(); 

     List<PrintService> services = INSTANCE.getServicesByName("BIXOLON_SRP-F310"); 
     if(services == null) { 
      throw new RuntimeException("No printer services available"); 
     } 
     INSTANCE.printServices(services); 

     try { 
      INSTANCE.print(services.get(0), "Hello"); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    public List<PrintService> getServicesByName(String serviceName) { 
     //Find printer service by name 
     AttributeSet aset = new HashAttributeSet(); 
     aset.add(new PrinterName(serviceName, null)); 
     return Arrays.asList(PrintServiceLookup.lookupPrintServices(null, aset)); 
    } 

    public void print(PrintService service, String printData) throws Exception { 
     if(service == null) { 
      throw new Exception("Service is not valid"); 
     } 
     if(printData == null) { 
      throw new Exception("Nothing to print"); 
     } 

     PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); 
     pras.add(new Copies(1)); 
     pras.add(new PrinterResolution(180,180,PrinterResolution.DPI)); 

     DocPrintJob job = service.createPrintJob(); 
     DocAttributeSet das = new HashDocAttributeSet(); 
     das.add(new PrinterResolution(180,180,PrinterResolution.DPI)); 

     byte[] desc = printData.getBytes(); 
     Doc doc = new SimpleDoc(desc, DocFlavor.BYTE_ARRAY.AUTOSENSE, das); 

     try { 
      job.print(doc, pras); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    public void printServices(List<PrintService> services) { 
     System.out.println("Printer Services found:"); 
     for (PrintService service : services) { 
      System.out.println("\t" + service); 
     } 
    } 
} 

Web界面:

Web Interface of Cups showing the printing job added, but with the error "No pages found!"

错误日志:

http://pastebin.com/kYiKGsSn

+0

您是否配置了打印机?就像重置它的IP地址一样,因为在IP上你必须通过CUP传递数据。 – 2014-12-29 14:05:47

+0

是的,我已经做到了,没有运气。 – yuva 2015-01-15 17:21:23

回答

1

执行下列操作步骤,并希望您的问题将得到解决。

  1. 检查打印机的IP是否与通过CUP打的相同,然后再打开,否则必须重置IP。
  2. 重置IP:按住热敏打印机的进纸按钮2-3分钟,打印出来的长回执将打印出有关打印机的详细信息。

现在只需用LAN电缆将打印机连接到PC并打开打印机设置即可。在这里,您可以根据微粒打印机的手册重置打印机IP。

设置完IP后,再次尝试从服务器尝试使用新IP访问该热敏打印机。 如果你的CUPS安装正确,那么它将工作,否则你必须检查CUPS。

检查所有这些东西,让我知道是作品或任何错误消息。

+0

当我尝试通过CUPS Web Interface进行打印时,打印机正常工作。这必须说明IP设置正确。当我尝试通过我的JAVA程序进行打印时,可以看到打印命令已发出,但打印机未打印。我已经在问题中解释了我的问题。 – yuva 2014-12-31 08:13:35

0

我正面临与您一样的问题。你可以尝试设置你的页面大小和格式。尝试做到这一点。

您还可以做一个简单的故障排除,如使用其他打印机。如果事情顺利,假设代码没有问题是安全的,但是您当前使用的打印机驱动程序可能会导致问题。

+0

你解决了你的问题吗?我正在尝试替代JPOS驱动程序,对此也没有任何好运。 – yuva 2015-01-15 17:20:29

相关问题