Skip to content

Instantly share code, notes, and snippets.

@cuahutli
Forked from sergiougalde/Impresora.java
Created May 24, 2018 00:33
Show Gist options
  • Save cuahutli/84b2c1d41249d364222c615ec514d66b to your computer and use it in GitHub Desktop.
Save cuahutli/84b2c1d41249d364222c615ec514d66b to your computer and use it in GitHub Desktop.
Imprimir con Java en una impresora de tickets Epson tmu 220 En muchos lugares se habla de como imprimir con Java en una epson tmu 220 , he encontrado mucho sobre y he encontrado muchas recomendaciones de usar epson java pos (http://www.javapos.com/devices.html) sin embargo si lo que se requiere es algo más simple aunque no tan potente es simplem…
import java.io.*;
/**
* Class declaration
*
*
* @author
* @version 1.10, 08/04/00
*/
public class impresora {
//Variables de acceso al dispositivo
private FileWriter fw;
private BufferedWriter bw;
private PrintWriter pw;
private String dispositivo=”";
/** Esta funcion inicia el dispositivo donde se va a imprimir */
public void setDispositivo( String texto ) {
dispositivo=texto;
if(texto.trim().length()<=0){//Si el dispositivo viene en blanco el sistema tratara de definirlo
Session misession=new Session();
dispositivo=misession.impresora_tiquets();
if(dispositivo.trim().length()<=0){
if(misession.isWindows()){
dispositivo=”LPT1″;//Esto si es windows
}else{
dispositivo=”/dev/lp0″;//Esto si es linux
}
}
}
try{
fw = new FileWriter(dispositivo);
bw = new BufferedWriter (fw);
pw = new PrintWriter (bw);
}catch(Exception e){
System.out.print(e);
}
}
public void escribir( String texto ) {
try{
pw.println(texto);
}catch(Exception e){
System.out.print(e);
}
}
public void cortar( ) {
try{
char[] ESC_CUT_PAPER = new char[] { 0x1B, ‘m’};
if(!this.dispositivo.trim().equals(“pantalla.txt”)){
pw.write(ESC_CUT_PAPER);
}
}catch(Exception e){
System.out.print(e);
}
}
public void avanza_pagina( ) {
try{
if(!this.dispositivo.trim().equals(“pantalla.txt”)){
pw.write(0x0C);
}
}catch(Exception e){
System.out.print(e);
}
}
public void setRojo( ) {
try{
char[] ESC_CUT_PAPER = new char[] { 0x1B, ‘r’,1};
if(!this.dispositivo.trim().equals(“pantalla.txt”)){
pw.write(ESC_CUT_PAPER);
}
}catch(Exception e){
System.out.print(e);
}
}
public void setNegro( ) {
try{
char[] ESC_CUT_PAPER = new char[] { 0x1B, ‘r’,0};
if(!this.dispositivo.trim().equals(“pantalla.txt”)){
pw.write(ESC_CUT_PAPER);
}
}catch(Exception e){
System.out.print(e);
}
}
public void setTipoCaracterLatino( ) {
try{
char[] ESC_CUT_PAPER = new char[] { 0x1B, ‘R’,18};
if(!this.dispositivo.trim().equals(“pantalla.txt”)){
pw.write(ESC_CUT_PAPER);
}
}catch(Exception e){
System.out.print(e);
}
}
public void setFormato(int formato ) {
try{
char[] ESC_CUT_PAPER = new char[] { 0x1B, ‘!’,(char)formato};
if(!this.dispositivo.trim().equals(“pantalla.txt”)){
pw.write(ESC_CUT_PAPER);
}
}catch(Exception e){
System.out.print(e);
}
}
public void correr(int fin){
try{
int i=0;
for(i=1;i<=fin;i++){
this.salto();
}
}catch(Exception e){
System.out.print(e);
}
}
public void salto() {
try{
pw.println(“”);
}catch(Exception e){
System.out.print(e);
}
}
public void dividir(){
escribir(“—————————————-”);
}
public void cerrarDispositivo( ){
try{
pw.close();
if(this.dispositivo.trim().equals(“pantalla.txt”)){
java.io.File archivo=new java.io.File(“pantalla.txt”);
java.awt.Desktop.getDesktop().open(archivo);
}
}catch(Exception e){
System.out.print(e);
}
}
public static void main(String args[]) {
impresora p=new impresora();
p.setDispositivo(“”);
p.escribir((char)27+”m”);
p.setTipoCaracterLatino();
p.setRojo();
p.escribir(“Esto es una prueba”);
p.setNegro();
p.escribir(“esto es negro”+(char)130);
p.setFormato(24);
p.escribir(“esto es negro con formato”);
p.setFormato(1);
p.escribir(“esto es negro con formato”);
p.correr(10);
p.cortar();
p.cerrarDispositivo();
}
impresora tiquete=new impresora();
tiquete.escribir(“ Esto es una linea “);
tiquete.escribir(“Esto es otra linea”);
tiquete.escribir(“Otra linea mas”);
//Esto es para escribir una linea divisoria
tiquete.dividir();
//esto cambia el formato de acuerdo a las especificaciones de epson
tiquete.setFormato(1);
tiquete.escribir(“ Mas texto con letra mas grande “);
tiquete.setFormato(1);
tiquete.escribir(“texto con letra normal”);
tiquete.dividir();
tiquete.setRojo();
tiquete.escribir(“Texto en rojo”)));
tiquete.setNegro();
tiquete.escribir(“Texto en negro”)));
tiquete.correr(10);//Esto baja 10 lineas en blanco
tiquete.cortar();//Esto corta el papel de la impresora
tiquete.cerrarDispositivo();//Cierra el dispositivo y aplica el texto
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment