Problema com impressão no java

1 resposta
Danilo.silva.cefet

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.

1 Resposta

guisantogui

Bah, não tenho a minima idéia, mas boa sorte!

e amigo como é novo no fórum use as tags

[code]
codigo aqui
[/code*]

fica a dica!

PS.: sem o asterisco (é óbvio) : P

Criado 25 de junho de 2010
Ultima resposta 25 de jun. de 2010
Respostas 1
Participantes 2