Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaPOS打印文本引发JposException_Java_Applet_Javapos - Fatal编程技术网

JavaPOS打印文本引发JposException

JavaPOS打印文本引发JposException,java,applet,javapos,Java,Applet,Javapos,我很难设置一个小程序来使用Epson TM-T88V pos打印机。现在我可以发送切割器的命令,它可以工作了。但打印任何其他文本都是不可能的 出现以下jpos.JposException: jpos.JposException: UnicodeDLL:-10An undefined parameter value was set. at jp.co.epson.upos.T88V.pntr.T88VService.createNormalData(Unknown Source)

我很难设置一个小程序来使用Epson TM-T88V pos打印机。现在我可以发送切割器的命令,它可以工作了。但打印任何其他文本都是不可能的

出现以下jpos.JposException:

jpos.JposException: UnicodeDLL:-10An undefined parameter value was set.  
  at jp.co.epson.upos.T88V.pntr.T88VService.createNormalData(Unknown Source)  
  at jp.co.epson.upos.core.v1_13_0001.pntr.CommonPrinterService.executeNormalPrint(Unknown Source)  
  at jp.co.epson.upos.T88V.pntr.T88VService.printNormal(Unknown Source)  
  at jpos.POSPrinter.printNormal(Unknown Source)  
  at de.develman.pos.printer.Printer.printReceipt(Printer.java:58)  
  at de.develman.pos.ui.action.PrintAction.actionPerformed(PrintAction.java:22)  
  at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)  
  ...
我的代码如下所示:

private void initPrinter() throws JposException {
    ptr.open("POSPrinter");
    ptr.claim(1000);
    ptr.setDeviceEnabled(true);
    ptr.setMapMode(POSPrinterConst.PTR_MM_METRIC);
}

private boolean printerUseable() throws JposException {
    // check if the cover is open
if (ptr.getCoverOpen() == true) {
    // cover open so do not attempt printing
    System.out.println("printer.getCoverOpen() == true");
    return false;
}

// check if the printer is out of paper
if (ptr.getRecEmpty() == true) {
    // the printer is out of paper so do not attempt printing
    System.out.println("printer.getRecEmpty() == true");
    return false;
}

    return true;
}

public void printReceipt() {
    try {
        initPrinter();
        if (printerUseable()) {
            ptr.printNormal(POSPrinterConst.PTR_S_RECEIPT, "1\n");
            ptr.printNormal(POSPrinterConst.PTR_S_RECEIPT, PAPERCUT);
        }
    } catch (JposException e) {
        // display any errors that come up
        e.printStackTrace();
    } finally {
        // close the printer object
        try {
            ptr.setDeviceEnabled(false);
            ptr.release();
            ptr.close();
        } catch (Exception e) {
    }
}
例外情况指向该行:

ptr.printNormal(POSPrinterConst.PTR_S_RECEIPT, "1\n");
如果我从eclipse运行代码,一切正常。如果我拆下管线,切割机工作正常。但是如果我想打印任何文本,就会抛出给定的异常。

我的问题是什么?

我已经用一台Epson TM-T88V打印机实现了JavaPOS,我也遇到了同样的错误,但我能够通过此链接中的示例代码解决该错误:

查看启动和终止打印事务的部分


希望有帮助。

我也有同样的问题

为了解决这个问题,我卸载了Epson JavaPOS ADK并重新安装。在重新安装ADK时,我检查了是否选择了正确的jpos.xml(我在应用程序中也使用了该jpos.xml)。之后错误就消失了


希望这能帮助其他有同样问题的人…

同样的问题,其他答案对我的问题没有帮助

通过以下步骤,我能够在Win 10 64上安装
Epson_JavaPOS_ADK_11120.exe
,我花了3天时间才弄明白这一点:

  • 从控制面板中删除任何版本的Java,然后重新启动
  • 安装
    jdk-6u45-windows-i586.exe
    ,重新启动
  • C:\ProgramData\Oracle\java\javapath
    中的
    java.exe
    javaw.exe
    javaws.exe
    替换为新java安装提供的可执行文件,该文件来自
    C:\Program Files\java\jre6\bin
  • 执行Epson安装程序
  • 完成后恢复系统