Skip to content

Instantly share code, notes, and snippets.

@RafaelBatistaJiron
Created May 12, 2016 14:13
Show Gist options
  • Save RafaelBatistaJiron/73c50ab10ef5bcc67d25d49a78597e37 to your computer and use it in GitHub Desktop.
Save RafaelBatistaJiron/73c50ab10ef5bcc67d25d49a78597e37 to your computer and use it in GitHub Desktop.
Este código es para poder imprimir en impresoras matriciales de forma sencilla, el código no es mio, solo hice una modificación para que funcione, debido a que en el articulo original faltaba una clase para identificar cual es el sistema operativo en que se esta imprimiendo.
/*
Author By: sergiougalde
Update By: RBJ
Update Date: Sept. 2015
Original URL: https://gist.github.com/sergiougalde/6247269
source: GitHub Gits
*/
public class Impresora {
private FileWriter fw; //Variables de acceso al dispositivo
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
if(dispositivo.trim().length()<=0){
dispositivo="LPT1"; //para imprimir en windows
}
}
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);
}
}
}
@RafaelBatistaJiron
Copy link
Author

El método correr sirve para imprimir lineas en blanco. cualquier duda o recomendación no duden en hacerla y trataremos de buscar la solución juntos.

Copy link

ghost commented Jan 14, 2022

Se puede imprimir desde una aplicación web de lado de servidor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment