Simular Impressão EPSON LX 300

Fala galera,

estou fazendo um applet parar impressão de notas fiscais para a Impressora EPSON LX 300, quanto a isso, achei bastante material na internet… com códigos que imprimem direto na porta LPT1

o problema é que eu não tenho a impressora aqui no meu ambiente de desenvolvimento…

tem algum modo de eu testar essa impressão?

obrigado galera!

abraço!

Eu conheço um mas é pago. chama-se PrintFil.
Recomendo. É pago mas vale cada centavo

Porque não imprime em arquivo utilizando este driver ?

[quote=TheKill]Eu conheço um mas é pago. chama-se PrintFil.
Recomendo. É pago mas vale cada centavo[/quote]

Opa, vou pesquisar sobre esse programa

obrigado!

abraço!

Opa,

você diz, escrever um txt normalmente? a escrita no txt vai ser igual da impressão?

obrigado!

abraço!

Amigo aqui no trabalho estamos precisando imprimir tb em uma impressora matricial, vc disse ter achado muito conteudo sobre. Teria como passar o caminho das pedras?

Abraço

[quote=LeoCBS]Fala galera,

estou fazendo um applet parar impressão de notas fiscais para a Impressora EPSON LX 300, quanto a isso, achei bastante material na internet… com códigos que imprimem direto na porta LPT1

o problema é que eu não tenho a impressora aqui no meu ambiente de desenvolvimento…

tem algum modo de eu testar essa impressão?

obrigado galera!

abraço![/quote]

Sim talves com a impressora real tenha que ter algum ajuste mais não e nada drastico

blz, vou seguir o seu conselho…

obrigado!

abraço!

[quote=S4M4R0N3]Amigo aqui no trabalho estamos precisando imprimir tb em uma impressora matricial, vc disse ter achado muito conteudo sobre. Teria como passar o caminho das pedras?

Abraço

[quote=LeoCBS]Fala galera,

estou fazendo um applet parar impressão de notas fiscais para a Impressora EPSON LX 300, quanto a isso, achei bastante material na internet… com códigos que imprimem direto na porta LPT1

o problema é que eu não tenho a impressora aqui no meu ambiente de desenvolvimento…

tem algum modo de eu testar essa impressão?

obrigado galera!

abraço![/quote][/quote]

Opa, claro,

seguem os links que estou usando como base:

http://code.google.com/p/escprinter/

abraço!

Fala pessoal, segui o conselho do labavel, ao invés de passar o caminho da impressora na rede, eu passo o caminho de um txt

ESCPrinter printer = new ESCPrinter("c:\\teste.txt", false);

estou usando a lib desse link: http://code.google.com/p/escprinter/

segue meu código da impressão, é igual ao código de teste que tem no site da lib:

if(printer.initialize()){
	printer.advanceVertical(5); //go down 5cm
	printer.setAbsoluteHorizontalPosition(5); //5cm to the right
	printer.bold(true);
	printer.print("Let's print some matrix text ;)");
	printer.bold(false);
	printer.advanceVertical(1);
	printer.setAbsoluteHorizontalPosition(5); //back to 5cm on horizontal axis
	printer.print("Very simple and easy!");            
	printer.formFeed(); //eject paper
	printer.close(); //close stream
}

até ai tudo bem, porem quando escreve no txt, ele escreve os camandos ESC, então o txt fica com esse texto:

e@ePex0e(t eteJeJeJeJ,e$v eELet’s print some matrix text ;)eFeJUe$v Very simple and easy!

alguém tem alguma dica para eu imprimir já com esses caracteres em algum arquivo de simulação?

ou tenho que comentar as linhas com os camando, como por exemplos as linhas de código dos espaços

o problema é que não vou conseguir simular a impressão muito bem…

valeu galera!

fala labavel,

o que significa imprimir em um arquivo utilizando este driver?

como assim?

não ententdi

valeu!

abraço!

Da forma que voce esta fazendo e salvando o arquivo em disco sem passar pelo driver, o correto e passar pelo o driver e salvar em disco para realizar a simulação de impressão.

Toda impressora controlada por um driver, que faz a comunicao entre os programas utilizados pelo usuario e uma impressora ligada a uma porta . Quando ela não faz comunicao direta com uma impressora via LPT/IP ela cria no disco um arquivo no formato de documento que pode ser determinado conforme manipulação no driver.

ex: Instale uma impressora PDF Primopdf DoPDF e envie a impressão para ela

boolean doPrint = printerJob.printDialog();   
if (doPrint) {   

de uma analizada neste post e ve se ajuda

http://javafree.uol.com.br/topic-6784-impressora.html

[quote=labavel]Da forma que voce esta fazendo e salvando o arquivo em disco sem passar pelo driver, o correto e passar pelo o driver e salvar em disco para realizar a simulação de impressão.

Toda impressora controlada por um driver, que faz a comunicao entre os programas utilizados pelo usuario e uma impressora ligada a uma porta . Quando ela não faz comunicao direta com uma impressora via LPT/IP ela cria no disco um arquivo no formato de documento que pode ser determinado conforme manipulação no driver.

ex: Instale uma impressora PDF Primopdf DoPDF e envie a impressão para ela

boolean doPrint = printerJob.printDialog();   
if (doPrint) {   

de uma analizada neste post e ve se ajuda

http://javafree.uol.com.br/topic-6784-impressora.html[/quote]

fala labavel, o link é ótimo como referência para comando de impressão e tal… mais não achei a parte que escreve o arquivo passando pelo driver…

podes dar algum exemplo?

primeiro baxei o DoPDF, depois tenho que baixar o driver da minha impressora?o driver da EPSON?

e depois?

na hora de escrever esse código:

 new FileOutputStream("c\\teste.txt");

como faço?

muito obrigado pela ajuda!

abraço!

vamos reformular as respostas e as perguntas ok

E uma aplicação Desktop ou web?

Vai ter interação do usuario na impressao?

Exemplo o usuario vai mandar imprimir na impressora x ou y se sim utilize o
http://download.oracle.com/javase/tutorial/uiswing/examples/misc/TablePrintDemo1Project/src/misc/TablePrintDemo1.java

http://download.oracle.com/javase/tutorial/uiswing/misc/printtable.html

[quote=labavel]vamos reformular as respostas e as perguntas ok

E uma aplicação Desktop ou web?

Vai ter interação do usuario na impressao?

Exemplo o usuario vai mandar imprimir na impressora x ou y se sim utilize o
http://download.oracle.com/javase/tutorial/uiswing/examples/misc/TablePrintDemo1Project/src/misc/TablePrintDemo1.java

http://download.oracle.com/javase/tutorial/uiswing/misc/printtable.html[/quote]

web, vou utilizar uma applet parar imprimir, estou implementando o applet separadamente, depois irei assinar e disponibilizar dentro da app

o usuário vai clicar na tela web e vai imprimir direto na porta LPT1, ele não vai escolher a impressora

Defina como impressora padrão a doPDF ok, quando for a EPSON LX 300 ela deve ser setada como padrão ok

[code]
package AppletImpressao;

import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.Book;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import javax.swing.JApplet;

/** @author Orlando **/
public class impressao extends JApplet implements Printable {

private Book book;   
public double fatorConverMMPt = 2.834646D;   

//========== -  Metodo de iniciação do applet - =============   
@Override  
public void init() {   
  imprimir();   
}   

//========== -  Metodo de configuração da impressora Padrão - =============   
public void imprimir() {   
    PrinterJob impressoraPadrao = PrinterJob.getPrinterJob();   
    //p.defaultPage();   
    impressoraPadrao.setPrintable(this);   
    book = new Book();   
    PageFormat pageFormat = new PageFormat();   
    //pageFormat = printJob.pageDialog(pageFormat);   
    Paper Folha = new Paper();   
    //Papel A4   
    //8,5 pol.   
    double width  = 210.9 * fatorConverMMPt;   
    //13 pol.   
    double height = 214.9 * fatorConverMMPt;   
    //double width  = 8.2;   
    //double height = 8.2;   
    //System.out.print("Largura: " + width + " Altura: " + height);   
    Folha.setSize(width, height);   
    Folha.setImageableArea(0.0, 0.0, width, height);   
    pageFormat.setPaper(Folha);   
    book.append(this, pageFormat);   
    impressoraPadrao.setPageable(book);   
    try {   
        impressoraPadrao.print();   
    } catch (Exception e) {   
        e.printStackTrace();   
    }   
}   

/** Método da interface Printable */  
public int print(Graphics g, PageFormat format, int pageIndex) throws PrinterException {   

    Graphics2D eventoGrafico = (Graphics2D) g;   

    //==== - Define o formado da folha de impressão (area possivel de se fazer a impressão do conteudo) - =======   
    eventoGrafico.translate(format.getImageableX(), format.getImageableX());   

    //======- Definição da font a ser utilizada - ================   
    eventoGrafico.setFont(new Font("Sans Serif", Font.PLAIN, 8 ));   

    //======- Imprimindo o conteudo evento.drawString(valor, eixo x, e eixo y) - ================   


    eventoGrafico.drawString("Texto a ser impresso1", 46, 169);   
    eventoGrafico.drawString("Texto a ser impresso2", 46, 169);   
    eventoGrafico.drawString("Texto a ser impresso3", 46, 169);   
    eventoGrafico.drawString("Texto a ser impresso4", 46, 169);   

    return PAGE_EXISTS;   
}   

}[/code]

não esqueça de assinar o applet senão ele não ira imprimir
http://lucasoliver.wordpress.com/2008/11/03/applet-para-impressao-via-web/

[quote=labavel]Defina como impressora padrão a doPDF ok, quando for a EPSON LX 300 ela deve ser setada como padrão ok

[code]
package AppletImpressao;

import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.Book;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import javax.swing.JApplet;

/** @author Orlando **/
public class impressao extends JApplet implements Printable {

private Book book;   
public double fatorConverMMPt = 2.834646D;   

//========== -  Metodo de iniciação do applet - =============   
@Override  
public void init() {   
  imprimir();   
}   

//========== -  Metodo de configuração da impressora Padrão - =============   
public void imprimir() {   
    PrinterJob impressoraPadrao = PrinterJob.getPrinterJob();   
    //p.defaultPage();   
    impressoraPadrao.setPrintable(this);   
    book = new Book();   
    PageFormat pageFormat = new PageFormat();   
    //pageFormat = printJob.pageDialog(pageFormat);   
    Paper Folha = new Paper();   
    //Papel A4   
    //8,5 pol.   
    double width  = 210.9 * fatorConverMMPt;   
    //13 pol.   
    double height = 214.9 * fatorConverMMPt;   
    //double width  = 8.2;   
    //double height = 8.2;   
    //System.out.print("Largura: " + width + " Altura: " + height);   
    Folha.setSize(width, height);   
    Folha.setImageableArea(0.0, 0.0, width, height);   
    pageFormat.setPaper(Folha);   
    book.append(this, pageFormat);   
    impressoraPadrao.setPageable(book);   
    try {   
        impressoraPadrao.print();   
    } catch (Exception e) {   
        e.printStackTrace();   
    }   
}   

/** Método da interface Printable */  
public int print(Graphics g, PageFormat format, int pageIndex) throws PrinterException {   

    Graphics2D eventoGrafico = (Graphics2D) g;   

    //==== - Define o formado da folha de impressão (area possivel de se fazer a impressão do conteudo) - =======   
    eventoGrafico.translate(format.getImageableX(), format.getImageableX());   

    //======- Definição da font a ser utilizada - ================   
    eventoGrafico.setFont(new Font("Sans Serif", Font.PLAIN, 8 ));   

    //======- Imprimindo o conteudo evento.drawString(valor, eixo x, e eixo y) - ================   


    eventoGrafico.drawString("Texto a ser impresso1", 46, 169);   
    eventoGrafico.drawString("Texto a ser impresso2", 46, 169);   
    eventoGrafico.drawString("Texto a ser impresso3", 46, 169);   
    eventoGrafico.drawString("Texto a ser impresso4", 46, 169);   

    return PAGE_EXISTS;   
}   

}[/code]

não esqueça de assinar o applet senão ele não ira imprimir
http://lucasoliver.wordpress.com/2008/11/03/applet-para-impressao-via-web/[/quote]

blz, e como eu faço com os comandos ESC do tipo negrito

printer.print("\u001B" + "E");

tem vários comandos como espaçamento, sublinhado… quebra de linha…

o DOoPDF vai entender?

valeu!

abraço!

passar caracteres especiais tipo ansi eu não tinha previsto porem no site da Epson tem o simulador ja testou ?

http://www2.epson.com.br/fiscais/?mdl=support

[quote=labavel]passar caracteres especiais tipo ansi eu não tinha previsto porem no site da Epson tem o simulador ja testou ?

http://www2.epson.com.br/fiscais/?mdl=support[/quote]

esse simulador é para impressora T8

a minha é LX 300+

valeu!

abraço!