设置小程序以使用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运行代码,一切正常。如果我删除线,刀具工作正常。但是如果我想打印任何文本,则抛出给定的异常 我的问题在这里是什么?
答案 0 :(得分:2)
我已经使用Epson TM-T88V打印机实现了JavaPOS,但我遇到了同样的错误,但我能够通过此链接中的示例代码解决错误:
http://jpos.1045706.n5.nabble.com/file/n2250344/StarReceiptTest.java
查看启动和终止打印事务的部分。
希望它有所帮助。
答案 1 :(得分:0)
我遇到了同样的问题。
要解决此问题,我已卸载Epson JavaPOS-ADK并重新安装。在重新安装ADK的同时,我已经检查过我选择了正确的jpos.xml(jpos.xml,我在我的应用程序中也使用了它)。之后错误消失了......
希望这可以帮助其他一些有同样问题的人......
答案 2 :(得分:0)
同样的问题,其他答案对我的问题没有帮助。
我能够通过以下步骤在 Win 10 64 上安装 Epson_JavaPOS_ADK_11120.exe
,我花了 3 天时间才弄明白:
jdk-6u45-windows-i586.exe
,重启java.exe
中的 javaw.exe
、javaws.exe
、C:\ProgramData\Oracle\Java\javapath
替换为 C:\Program Files\Java\jre6\bin
中新安装的 Java 提供的可执行文件