import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.awt.print.*;
import javax.swing.*;
import javax.swing.table.JTableHeader;
class print implements ActionListener,KeyListener,Printable
{
JTable table,stable;
JTable footer = new JTable(1,6);
JTable table2= new JTable(11,2);;
JPanel panel,panell;
String data[][] = new String[100][6];
JLabel labelf[]=new JLabel[7];
JFrame f;
public static void main(String[] args)
{
new print();
}
print()
{
f = new JFrame("Bill Invoice......");
f.setLayout(null);
JButton jbe = new JButton("Back");
//jbe.setFont(labfont3);
// labfont=new Font("Kunstler Script",Font.BOLD,40);
JLabel la1=new JLabel("SOLD TO :");
JLabel la2=new JLabel("PROFORMA INVOICE");
Font l1=new Font("Times New Roman",Font.BOLD,15);
Font l2=new Font("Times New Roman",Font.BOLD,18);
//Font l3=new Font("Times New Roman",Font.BOLD,15);
la1.setForeground(new Color(138,10,178));
la2.setForeground(new Color(138,10,178));
ImageIcon ic2 = new ImageIcon("vv.jpg");
JLabel piclab2 = new JLabel(ic2);
JButton button = new JButton("Print");
JButton button1 = new JButton("Save");
JButton button2 = new JButton("Finish");
String[] columnheader = {"S.No.", "Description", "Bales Bags", "Weight in Kgs", "Price ", "Total" };
labelf[0]=new JLabel("txt10");
labelf[1]=new JLabel("txt11");
labelf[2]=new JLabel("txt111");
labelf[3]=new JLabel("txtt");
labelf[4]=new JLabel("txt12");
labelf[5]=new JLabel("txtx");
labelf[6]=new JLabel("txty");
table2.getColumnModel().getColumn(0).setPreferredWidth(200);
table2.getColumnModel().getColumn(1).setPreferredWidth(200);
table2.setRowHeight(20);
table2.getModel().setValueAt("INVOICE NO.",0,0);
table2.getModel().setValueAt("txt00",0,1);
table2.getModel().setValueAt("DATE",1,0);
table2.getModel().setValueAt(""+"currentTime",1,1);
table2.getModel().setValueAt("EXPORTRANS REF.",2,0);
table2.getModel().setValueAt("txtz",2,1);
table2.getModel().setValueAt("BOOKING NO.",3,0);
table2.getModel().setValueAt("txt22",3,1);
table2.getModel().setValueAt("CONTAINER NO.",4,0);
table2.getModel().setValueAt("txt33",4,1);
table2.getModel().setValueAt("SEAL NO.",5,0);
table2.getModel().setValueAt("txt44",5,1);
table2.getModel().setValueAt("VESSEL NAME",6,0);
table2.getModel().setValueAt("txt55",6,1);
table2.getModel().setValueAt("SHIPPING LINE",7,0);
table2.getModel().setValueAt("txt66",7,1);
table2.getModel().setValueAt("BILL OF LANDING NO.",8,0);
table2.getModel().setValueAt("txt77",8,1);
table2.getModel().setValueAt("IDF NO.",9,0);
table2.getModel().setValueAt("txt88",9,1);
table2.getModel().setValueAt("IO NO.",10,0);
table2.getModel().setValueAt("txt99",10,1);
table = new JTable(data,columnheader);
//table.setTableHeader(columnNames);
footer.getModel().setValueAt("Total",0,1);
JTableHeader header = table.getTableHeader();
panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(header, BorderLayout.NORTH);
panel.add(table, BorderLayout.CENTER);
panel.add(footer,BorderLayout.SOUTH);
table.getTableHeader().setReorderingAllowed(false);
table.setRowHeight(25);
footer.setRowHeight(25);
table.setShowGrid(false);
table.setShowVerticalLines(true);
JScrollPane pane = new JScrollPane(table);
table.getColumnModel().getColumn(0).setPreferredWidth(24);
table.getColumnModel().getColumn(1).setPreferredWidth(200);
//table.getModel().setValueAt(1,0,0);
table.getTableHeader().setPreferredSize(new Dimension(pane.getWidth(),35));
footer.getColumnModel().getColumn(0).setPreferredWidth(13);
footer.getColumnModel().getColumn(1).setPreferredWidth(190);
footer.getColumnModel().getColumn(2).setPreferredWidth(65);
footer.getColumnModel().getColumn(3).setPreferredWidth(65);
footer.getColumnModel().getColumn(4).setPreferredWidth(65);
footer.getColumnModel().getColumn(5).setPreferredWidth(82);
jbe.setBounds(0,0,105,30);
panel.setBounds(180,350,1000,290);
table2.setBounds(780,100,400,220);
panel.add(pane, BorderLayout.CENTER);
la1.setBounds(190,95,150,60);
int y=140;
for(int i=0;i<=6;i++)
{
labelf[i].setFont(l1);
labelf[i].setBounds(190,y,500,20);
y=y+20;
f.add(labelf[i]);
}
la2.setBounds(530,300,300,60);
button1.setBounds(1250,550,100,30);
button.setBounds(1250,600,100,30);
button2.setBounds(1250,650,100,30);
table.setFont(l1);
table2.setFont(l1);
footer.setFont(l1);
la1.setFont(l2);
la2.setFont(l2);
header.setFont(l1);
f.add(jbe);
f.add(la1);
f.add(la2);
f.add(button);
f.add(button1);
f.add(button2);
button.addActionListener(this);
button1.addActionListener(this);
button2.addActionListener(this);
jbe.addActionListener(this);
f.add(panel);
f.add(table2);
piclab2.setBounds(0,0,1366,768);
f.add(piclab2);
f.setSize(1366,768);
f.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent arg0)
{
String s=arg0.getActionCommand( );
if (s.equals("Print"))
{
PrinterJob pj = PrinterJob.getPrinterJob();
PageFormat pf = pj.defaultPage();
Paper paper = new Paper();
paper.setImageableArea(50, 100, 400, 200);
pf.setPaper(paper);
pj.setPrintable(this, pf);
if (pj.printDialog())
{
try
{
pj.print();
}
catch (PrinterException pe)
{
System.err.println("Error printing: " + pe.getMessage());
}
}
}
}
@Override
public int print(Graphics g, PageFormat pf, int page) throws PrinterException
{
if (page > 0)
{
return (NO_SUCH_PAGE);
}
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
Rectangle rec = f.getBounds();
BufferedImage snapshot = new BufferedImage(rec.width,rec.height,BufferedImage.TYPE_INT_ARGB);
//BufferedImage snapshot = AnimeUtilities.createSnapshotOfFrame(pf, Transparency.TRANSLUCENT);
double scaleX = pf.getWidth()/snapshot.getWidth();
double scaleY = pf.getHeight();///snapshot.getHeight();
double scaleValue = Math.min(scaleX, scaleY);
System.out.println(""+scaleValue);
g2d.scale(scaleValue+0.3, scaleValue+0.3);
table2.print(g2d);
return (PAGE_EXISTS);
}
@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
}
I have tried too much but this code is printing only some part of my page......i want to print whole page......I am not familier with print commands.....does anybody have idea to print whole page...