Impressão personalizada

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

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());
//pras.add(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)));
}
}