Orientacao da impressao

4 respostas
A

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();

4 Respostas

E
PageAttributes pa = new PageAttributes();
pa.setOrientationRequested(OrientationRequestedType.LANDSCAPE);
tk.getPrintJob(f, "print", new JobAttributes(), pa);
A
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:
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();

 }
E

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

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

Criado 31 de março de 2009
Ultima resposta 1 de abr. de 2009
Respostas 4
Participantes 2