Eu estou trabalhando num projeto JavaFX e preciso imprimir um cupom não-fiscal na impressora Tanca TP-509.
Como ela só tem driver para Windows e Linux e estou trabalhando num Mac, instalei ela num micro Ubuntu e instalei ela no Mac pela rede. Até aí parece que tudo bem.
Quando eu mando imprimir uma página de configuração ela imprime, quando eu mando imprimir uma página de testes dá erro.
Eu entendi nesse link que poderia usar o Jasper Report:
Eu fiz um arquivo no JasperReport e ele cria o PDF ou HTML certinho, porém quando mando imprimir dá erro. Não no java mas na fila de impressão da mesma.
Eu decidi usar uma API para trabalhar com ESC/POS. Acontece a mesma coisa. A API é baseada nesse link:
http://www.mets-blog.com/java-pos-thermal-printer-example/
Parti pra outro teste, eu baixei esse projeto:
Converti em jar com o Maven e fiz assim:
PrinterJob pj = PrinterJob.createPrinterJob();
Printer p = new SerialPrinter(pj.getPrinter().getName(), 9600);
PrinterService service = new PrinterService(p);
try {
service.open();
service.setCharCode("CP860");
// formato de impressão aqui.
service.close();
Porém dispara esse erro quando ele vai criar o PrinterService
> Exception in thread "JavaFX Application Thread" java.lang.UnsatisfiedLinkError: com.pi4j.wiringpi.Serial.serialOpen(Ljava/lang/String;I)I > at com.pi4j.wiringpi.Serial.serialOpen(Native Method) > at com.pi4j.io.serial.impl.SerialImpl.open(SerialImpl.java:84) > at io.github.escposjava.print.SerialPrinter.open(SerialPrinter.java:17) > at io.github.escposjava.PrinterService.open(PrinterService.java:395) > at io.github.escposjava.PrinterService.<init>(PrinterService.java:23) > at framework.ThermalPrinter.printString(ThermalPrinter.java:89) > at reports.Relatorios.imprimeCupomAgenda(Relatorios.java:68) > at viewController.DialogAgendarServicoController.imprimirCupom(DialogAgendarServicoController.java:557) > at viewController.DialogAgendarServicoController.lambda$initialize$15(DialogAgendarServicoController.java:520) > at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) > at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) > at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) > at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) > at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) > at javafx.event.Event.fireEvent(Event.java:198) > at javafx.scene.Node.fireEvent(Node.java:8413) > at javafx.scene.control.Button.fire(Button.java:185) > at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) > at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96) > at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89) > at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) > at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) > at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) > at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) > at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) > at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) > at javafx.event.Event.fireEvent(Event.java:198) > at javafx.scene.Scene$MouseHandler.process(Scene.java:3757) > at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) > at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) > at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) > at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:381) > at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295) > at java.security.AccessController.doPrivileged(Native Method) > at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:417) > at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) > at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:416) > at com.sun.glass.ui.View.handleMouseEvent(View.java:555) > at com.sun.glass.ui.View.notifyMouse(View.java:937) > at com.sun.glass.ui.mac.MacApplication._enterNestedEventLoopImpl(Native Method) > at com.sun.glass.ui.mac.MacApplication._enterNestedEventLoop(MacApplication.java:109) > at com.sun.glass.ui.Application.enterNestedEventLoop(Application.java:511) > at com.sun.glass.ui.EventLoop.enter(EventLoop.java:107) > at com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(QuantumToolkit.java:583) > at javafx.stage.Stage.showAndWait(Stage.java:474) > at javafx.scene.control.HeavyweightDialog.showAndWait(HeavyweightDialog.java:162) > at javafx.scene.control.Dialog.showAndWait(Dialog.java:341) > at framework.HDAlert.agendarServico(HDAlert.java:311) > at viewController.MovServicoController.lambda$initialize$1(MovServicoController.java:138) > at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) > at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) > at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) > at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) > at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) > at javafx.event.Event.fireEvent(Event.java:198) > at javafx.scene.Node.fireEvent(Node.java:8413) > at javafx.scene.control.Button.fire(Button.java:185) > at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) > at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96) > at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89) > at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) > at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) > at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) > at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) > at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) > at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) > at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) > at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) > at javafx.event.Event.fireEvent(Event.java:198) > at javafx.scene.Scene$MouseHandler.process(Scene.java:3757) > at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) > at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) > at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) > at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:381) > at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295) > at java.security.AccessController.doPrivileged(Native Method) > at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:417) > at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) > at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:416) > at com.sun.glass.ui.View.handleMouseEvent(View.java:555) > at com.sun.glass.ui.View.notifyMouse(View.java:937)
Alguém já trabalhou com essa Tanca TP-509 ou teria uma saberia me orientar o que posso fazer?