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