PDFRenderer

Olá

Estou utilizando a API da SUN para impressão de um PDF diretamente a partir de um applet.
Minha necessidade é gerar o pdf e enviá-lo diretamente para a impressora, sem intervenção do usuário.
Pois bem, a API funciona muito bem mas o único problema está sendo fazer com que o resultado impresso seja o mesmo que eu estou visualizando.
Estou fazendo configurações no código meio que por tentativa e erro e eu até consegui fazer com que imprima de uma maneira correta, o único problema é que daí quando eu visualizo fica desalinhado.
O código que estou usando é o seguinte:

                File f = new File("c\\temp\\teste_pdf.pdf");  
		FileInputStream fis = new FileInputStream(f);  
		FileChannel fc = fis.getChannel();  
		
		ByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());  
		PDFFile pdfFile = new PDFFile(bb); // Create PDF Print Page  
		PDFPrintPage pages = new PDFPrintPage(pdfFile);
		
		PrinterJob pjob = PrinterJob.getPrinterJob();
		PageFormat pf = PrinterJob.getPrinterJob().defaultPage();
		Paper paper = new Paper();
		paper.setImageableArea(0, 0, 800, 1300);
		paper.setSize(800, 1300);
		
		pf.setPaper(paper);
		
		pjob.setJobName(f.getName());  
		Book book = new Book(); 
		book.append(pages, pf, pdfFile.getNumPages());  
		pjob.setPageable(book);  
		
		pjob.print(); 

Estou tentando imprimir numa folha A4. A largura 800 e a altura 1300 eu consegui como disse no chute.
Há alguma forma mais precisa de definir e enquadrar o documento para que ele apareça corretamente tanto na impressão quanto na visualizaçao??