Impressão personalizada

1 resposta
jaissonduarte

Boa tarde
Preciso imprimir uma imagem com o tamanho 90cm de largura por 30cm de altura.
Tentei usar o seguinte código, mas não deu muito certo:

private static void imprimirArquivo(String arquivo) throws Exception {
    FileInputStream arq = new FileInputStream(arquivo);

    DocFlavor formatoDoc = DocFlavor.INPUT_STREAM.PNG;
    Doc documento = new SimpleDoc(arq, formatoDoc, null);
    PrintRequestAttributeSet configuracoes = new HashPrintRequestAttributeSet();
    configuracoes.add(OrientationRequested.PORTRAIT);
    configuracoes.add(MediaSizeName.ISO_A6);

    PrintService service = PrintServiceLookup.lookupDefaultPrintService();
    DocPrintJob job = service.createPrintJob();
    job.print(documento, configuracoes);
  }

Creio que meu problema esteja aqui: “configuracoes.add(MediaSizeName.ISO_A6);”
Como faria pra o tamanho fosse 30x90?
Obrigado

1 Resposta

Leo_Alemao6492

Este formato ISO_A6 é para tamanho 10x15cm
O componente MediaSizeName tem vários tamanho pré configurados para serem usados, e também é possível ciar o prório tamanho, como por exemplo este que eu uso para impressão 10x15cm…

Bloco de Citação

PrintService printService = PrintServiceLookup.lookupDefaultPrintService();

Media[] res = (Media[]) printService.getSupportedAttributeValues(Media.class, null, null);

for (Media media : res) {

if (media instanceof MediaSizeName) {

MediaSizeName msn = (MediaSizeName) media;

MediaSize ms = MediaSize.getMediaSizeForName(msn);

int width = Math.round(MediaSizeName.ISO_A6.getValue());

int height = Math.round(MediaSizeName.ISO_A6.getValue());

<a href="//pras.add">//pras.add</a>(new MediaPrintableArea(0,0, width, height, MediaPrintableArea.INCH));

// pras.add(new MediaPrintableArea(0, 0, 4, 6, MediaPrintableArea.INCH)); //aqui vc coloca o tamanho que deseja.

pras.add(MediaSizeName.ISO_A6);

pras.add(new Copies(Integer.parseInt(qt)));

}

}
Criado 16 de março de 2015
Ultima resposta 18 de ago. de 2019
Respostas 1
Participantes 2