Estou utilizando uma impressora não fiscal, modelo mp 2100 da bermatech para uma aplicação de orçamento.
Porém quando mando imprimir a impressão é executada com sucesso, mas a configuração da margem de impressão não esta no tamanho que desejo.
Ja pesquise em varios lugares da nuvem e não consegui encontrar nada referente a configuração das margem da pagina para impressão no java.
Alguem tem alguma ideia do que eu possa fazer para configurar a margem no tamanho que eu desejo?
Estou usando este codigo de impressão:
import java.awt.<em>;
import java.awt.font.</em>;
import java.awt.print.<em>;
import <a href="http://java.io">java.io</a>.</em>;
import java.text.AttributedString;
import java.util.ArrayList;
import java.util.Iterator;
public class ImprimirCabecalho implements Printable {
// array de paragrafos do texto
ArrayList texto;
public ImprimirCabecalho() throws IOException {
// Obtem um job de impressao
PrinterJob job = PrinterJob.getPrinterJob();
// carrega o texto a ser impresso
BufferedReader re = new BufferedReader(new FileReader("caminho do arquivo"));
texto = new ArrayList();
String line = re.readLine();
while (line != null) {
texto.add(line);
line = re.readLine();
}
re.close();
// Define o objeto a ser impresso
job.setPrintable(this);
// exibe o dialogo de impressao.
try {
// imprime o objeto printable
job.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
public int print(Graphics g, PageFormat format, int page) throws PrinterException {
if (page != 0) {
return NO_SUCH_PAGE;
}
Graphics2D gr = (Graphics2D) g;
// determina o ponto de inicio do texto (inicio da area util + 10 pontos)
float posX = (float) format.getImageableX() + 1;
float posY = (float) format.getImageableY() + 1;
// determina a largura do texto como 350 pontos (dpi)
float larguraTexto = 350;
// para cada paragrafo, imprime o paragrafo formatado
Iterator it = texto.iterator();
while (it.hasNext()) {
String line = (String) it.next();
// caso haja uma linha em branco, substituir por um espaço
// para permitir formatação
if (line.length() == 0) {
line = " ";
}
// texto formatado a ser impresso
AttributedString str = new AttributedString(line);
// define a fonte do texto como arial 12 itálico
str.addAttribute(TextAttribute.FONT, new Font("Arial", Font.ITALIC, 8));
// instancia um line breaker para o texto formatado
LineBreakMeasurer quebrador = new LineBreakMeasurer(str.getIterator(), gr.getFontRenderContext());
// cria um TextLayout para armazenar cada linha ‘quebrada’
TextLayout linha = quebrador.nextLayout(larguraTexto);
while (linha != null) {
// posiciona o texto
posY += linha.getAscent();
linha.draw(gr, posX, posY);
// soma espaço para a próxima linha
posY += linha.getDescent() + linha.getLeading();
linha = quebrador.nextLayout(larguraTexto);
}
}
// fim dos paragrafos
return PAGE_EXISTS;
}
}
Agradeço.