Java + Impressora Térmica

1 resposta
imprimirprogramaçãojava
Andre_Donadon

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?

1 Resposta

damghani

Você conseguiu achar alguma solução?

Estou com o mesmo problema…

Criado 18 de dezembro de 2018
Ultima resposta 19 de ago. de 2019
Respostas 1
Participantes 2