アプレットを 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 からコードを実行すると、すべて正常に動作します。線を取り除くと、カッターは正常に動作します。しかし、テキストを印刷したい場合は、指定された例外がスローされます。
ここで私の問題は何ですか?