Skip to content

Instantly share code, notes, and snippets.

@RafaelBatistaJiron
Forked from sergiougalde/Impresora.java
Last active May 12, 2016 17:23
Show Gist options
  • Save RafaelBatistaJiron/5089bae4638dee25ec73d8279667ce4b to your computer and use it in GitHub Desktop.
Save RafaelBatistaJiron/5089bae4638dee25ec73d8279667ce4b to your computer and use it in GitHub Desktop.
Imprimir con Java en una impresora de tickets Epson tmu 220En 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 simpleme…
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
}
//debido a que la clase session no se encuentra subida quiten el if() y solo dejenlo con el puerto a usar
//ya sea para windows o Linux funciona bien, lo probe
}
}
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