Orientacao da impressao

Boa tarde, gostaria de saber como mudar a orientacao da pagina no seguinte codigo. Gostaria de colocar em modo paisagem. Obrigado

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)                                         
 {                                             
   Frame f = new Frame("Frame temporário");      
   f.pack();       
   
   // pega o Toolkit do Frame      
   Toolkit tk = f.getToolkit();       
   // Pega os serviços de impressão existentes no computador,      
   // para que seja escolhida uma impressora.     
   // Também pode ser uma impressora de rede    
   PrintJob pj = tk.getPrintJob(f,  "print" , null);     
  
   // Aqui se inicia a impressão    
   if (pj != null) 

   {     
    for(int x = 0; x<=0;x++)
    {
     Graphics g =  pj.getGraphics();
          
     g.setFont(new Font("MS Sains Serif",Font.PLAIN,8));     
     
     g.drawString( "Anderson"+x , 70, 30);   
    }
    // libera os recursos gráficos 
 //   g.dispose();       

    // encerra a impressão
    pj.end();
   }
  f.dispose();
PageAttributes pa = new PageAttributes();
pa.setOrientationRequested(OrientationRequestedType.LANDSCAPE);
tk.getPrintJob(f, "print", new JobAttributes(), pa);

Antes de tudo gostaria de agradecer a ajuda do nosso amigo.
O comando sugerido funcionou certinho, mas agora tem um porem a impressao esta saindo de cabeca para baixo, tem como inverter isso? Tipo um comando igual o rotate usado no graphics2D resolveria o problema, tentei transformar a variavel “g” para Graphics2d mas na hora que vai transformar da erro e nao sai nada na impressora. Meu codigo agora esta assim:

[code]
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
Graphics graphics = getGraphics();
Frame f = new Frame(“Frame temporário”);
f.pack();

// pega o Toolkit do Frame
Toolkit tk = f.getToolkit();

PageAttributes pa = new PageAttributes();
pa.setOrientationRequested(OrientationRequestedType.LANDSCAPE);

// Pega os serviços de impressão existentes no computador,
// para que seja escolhida uma impressora.
// Também pode ser uma impressora de rede
PrintJob pj = tk.getPrintJob(f, “print” , new JobAttributes(), pa);

// Aqui se inicia a impressão
if (pj != null)
{
for(int x = 0; x<=0;x++)
{
Graphics g = pj.getGraphics();

 g.setFont(new Font("MS Sains Serif",Font.PLAIN,8));     
 g.drawString( "Anderson"+x , 70, 30);   
}
// libera os recursos gráficos 
//   g.dispose();       
// encerra a impressão
pj.end();

}
f.dispose();

} [/code]

Você poderia desenhar num Image e depois jogar este para a impressão:

if (pj != null)    { 
   Dimension dim = pj.getPageDimension();
   BufferedImage img = new BufferedImage(dim.getWidth(),dim.getHeight(), BufferedImage.TYPE_INT_RGB);
   Graphics2D g2d = (Graphics2D)img.getGraphics();
   for(int x = 0; x<=0;x++)  {  
     g2d.setFont(new Font("MS Sains Serif",Font.PLAIN,8));       
     g2d.drawString( "Anderson"+x , 70, 30);          
    }  
    Graphics g = pj.getGraphics();  
    g.drawImage(img, 0, 0, null);
    pj.end();  
 } 

A ideia ate que foi boa, mas agora surgiu outro problema, a impressora ta pintando todo do cartao e so onde eu escrevo fica da cor do cartao, ou seja, somente onde tem texto nao esta imprimindo…Aguardo alguma ajuda