Duvida ao imprimir

Galera estou usando a classe PrintService para impressao de um arquivo do jasper.
abaixo o trecho do codigo no momento da impressao.

[code]
public void imprimirPDF(InputStream arquivo, String nomeDaImpressora, int paginaInicio, int paginaFim) throws PlcException {

	PDDocument document = null;

	try {

		document = PDDocument.load(arquivo);

		PrinterJob job = PrinterJob.getPrinterJob();

		javax.print.PrintService printService = obtemServicoDeImpressao(nomeDaImpressora);

		if (printService != null)
			job.setPrintService(printService); // atribui o serviço de

		else
			throw new PlcException("erro.impressora.nao_encontrada",
					new Object[] { nomeDaImpressora });

		job.setPageable(document);

		PrintRequestAttributeSet i = new HashPrintRequestAttributeSet();
		        //impressao de todas as paginas
                            if (paginaInicio == 0 || paginaFim == 0)
			job.print();
                    //impressao por intervalos de paginas
		else {
			Attribute numeroPagina = new PageRanges(paginaInicio,paginaFim);
			i.add(numeroPagina);
			job.print(i);
		}

		document.close();[/code]

so que quando mando imprimir por exemplo da pagina 59 a 59, esta imprimindo certo, mas ai se eu mandar imprimir novamente
da pagina 59 a 59 a ordem de impressao dos registros esta saindo diferente da primeira impressao.

primeira impressao: sabao R$ 3,00 | sabonete R$ 0,90 | condicionador R$ 15,00
segunda impressao: condicionador R$ 15,00 | sabao R$ 3,00 | sabonete R$ 0,90

como conserto isso???