Impressora térmica

Boa tarde.

Estou com o seguinte problema:

Preciso fazer a impressão de um valor que vai ser digitado em um textbox em uma impressora térmica.
Utilizando a classe 1, e configurando a impressora Generic Text Only pra entrada com1, eu consigo essa impressão.

Porém tem um problema, a fonte sai pequena e se eu clicar repetidamente no botão para imprimir, ele imprime um do lado do outro, sem quebras de linha. Eu gostaria de saber como altero o tamanho da fonte e formato ela para que saia maior na impressão.

Abaixo os códigos:

Classe 1: (retirado aqui mesmo do fórum do GUJ)

[code]
package Control;

import javax.print.*;
import javax.swing.JOptionPane;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

// Essa classe é a responsavel pela impressao. Ela detecta a impressora
// instalada, recebe o texto e o imprime.
public class Impressao {

// variavel estatica porque será utilizada por inumeras threads
private static PrintService impressora;

public Impressao() {

	detectaImpressoras();

}

// O metodo verifica se existe impressora conectada e a
// define como padrao.
public void detectaImpressoras() {

	try {

		DocFlavor df = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
		PrintService[] ps = PrintServiceLookup
				.lookupPrintServices(df, null);
		for (PrintService p : ps) {

			System.out.println("Impressora encontrada: " + p.getName());

			if (p.getName().contains("Text")
					|| p.getName().contains("Generic")) {

				System.out
						.println("Impressora Selecionada: " + p.getName());
				impressora = p;
				break;

			}

		}

	} catch (Exception e) {

		e.printStackTrace();

	}

}

public synchronized boolean imprime(String texto) {

	// se nao existir impressora, entao avisa usuario
	// senao imprime texto
	if (impressora == null) {

		String msg = "Nennhuma impressora foi encontrada. Instale uma impressora padrão \r\n(Generic Text Only) e reinicie o programa.";
		//System.out.println(msg);
		JOptionPane.showMessageDialog(null, msg, "Erro de impressão", 0);

	} else {

		try {

			DocPrintJob dpj = impressora.createPrintJob();
			InputStream stream = new ByteArrayInputStream(texto.getBytes());

			DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
			Doc doc = new SimpleDoc(stream, flavor, null);
			dpj.print(doc, null);

			return true;

		} catch (PrintException e) {

			e.printStackTrace();

		}

	}

	return false;

}

}[/code]

E o momento da impressão:

i.imprime(form.getTxtSenha().getText());

Desde já, obrigado.

Ninguém pode me ajudar? D:

Pra isso existe o jasper…

Jasper?

Tem algum link onde eu possa aprender mais sobre?

Use a busca do fórum :twisted: :twisted: :twisted:

:arrow: http://www.guj.com.br/article.show.logic?id=151