Cartão magnético

1 resposta
R

Pessoal, boa tarde!

A empresa que trabalho adquiriu recentemente uma impressora de cartão. Estou desenvolvendo um sistema em java pra imprimir cartão nesta máquina, porem quando mando imprimir os dados são impressos na posição invertida. Os cartões já vem com a tarja magnética e tem a posição correta de colocar os cartõe na máquina, se eu for considerar a posição da tarja a impressão dos dados fica como se fosse de cabeça pra baixo. Segue abaixo o código que estou usando pra imprimir meu nome no cartão.
.

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.Printable;
import java.awt.print.PrinterJob;
import javax.swing.*;

public class Principal extends javax.swing.JFrame implements Printable
{
 
 public Principal()
 {
  initComponents();
 }

 // <editor-fold defaultstate="collapsed" desc="Generated Code">
 private void initComponents() {

  bImprimir = new javax.swing.JButton();

  setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  setTitle("Imprimir");

  bImprimir.setText("Imprimir");
  bImprimir.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(java.awt.event.ActionEvent evt) {
    bImprimirActionPerformed(evt);
   }
  });

  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  getContentPane().setLayout(layout);
  layout.setHorizontalGroup(
   layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
   .addGroup(layout.createSequentialGroup()
    .addGap(157, 157, 157)
    .addComponent(bImprimir)
    .addContainerGap(172, Short.MAX_VALUE))
  );
  layout.setVerticalGroup(
   layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
   .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
    .addContainerGap(158, Short.MAX_VALUE)
    .addComponent(bImprimir)
    .addGap(119, 119, 119))
  );

  pack();
 }// </editor-fold>

 private void bImprimirActionPerformed(java.awt.event.ActionEvent evt)                                         
 {                                             
 PrinterJob job = PrinterJob.getPrinterJob();
            
 PageFormat pf = new PageFormat();
 
 Paper p = new Paper();
 p.setImageableArea(-10.0f,-10.0f,250f,250f); 
 
 pf.setOrientation(pf.LANDSCAPE);
 pf.setPaper(p); //setando o papel

 job.setPrintable(this,pf);
 if(job.printDialog())
 {
  try
  {
   job.print();
  }   
  catch(Exception e)
  {
   JOptionPane.showMessageDialog(null,"Falha ao imprimir!!!","Atenção",JOptionPane.WARNING_MESSAGE);   
  }
 }                  
}

 public int print (Graphics graphics, PageFormat pageFormat, int pageIndex) {
  Graphics2D graphics2D = (Graphics2D) graphics;
  
  graphics2D.drawString("Renato Souza",2,10);

  return (PAGE_EXISTS);
} 
 
 public static void main(String args[])
 {
  java.awt.EventQueue.invokeLater(new Runnable()
  {
   public void run()
   {
    new Principal().setVisible(true);
   }
  });
 }
 
 // Variables declaration - do not modify
 private javax.swing.JButton bImprimir;
 // End of variables declaration
 
}

1 Resposta

R

Galera descobri como inverter a posição da impressão nos cartões, porem agora estou com outro problema. Quando mando imprimir mais de um cartão ao invés de sair dois cartões está saindo as duas impressões no mesmo cartão. Eu preciso saber como criar páginas para solucionar este problema, pois a impressora irá considerar cada cartão como uma página.

Criado 26 de março de 2009
Ultima resposta 30 de mar. de 2009
Respostas 1
Participantes 1