日期:2014-05-20  浏览次数:20650 次

java中的打印操作
import java.awt.*;
import java.awt.event.*;

public class PrintJobExa 
{


/**
* @param args
*/
public static void main(String[] args) 
{
Win3 f=new Win3();
f.setBounds(70,70,300,300);
f.setVisible(true);
f.validate();
// TODO Auto-generated method stub

}

}
class Win3 extends Frame implements ActionListener
{ PrintJob p=null;
  Graphics g=null;
  TextArea text=new TextArea(10,10);
  Button 打印文本框=new Button("打印文本框"),
  打印窗口=new Button("打印窗口"),
  打印按钮=new Button("打印按钮");
  Win3()
  { super("在应用程序中打印");
打印文本框.addActionListener(this);  
打印窗口.addActionListener(this);
打印按钮.addActionListener(this);
add(text,"Center");
Panel panel=new Panel();
panel.add(打印文本框);
panel.add(打印窗口);
panel.add(打印按钮);
add(panel,"South");
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
 
  }
  public void actionPerformed(ActionEvent e)
   
  { if(e.getSource()==打印文本框)
  { p=getToolkit().getPrintJob(this, "OK", null);
  g=p.getGraphics();
  text.printAll(g);
  g.dispose();
p.end();
  }
  else if(e.getSource()==打印窗口)
  { p=getToolkit().getPrintJob(this, "OK", null);
  g=p.getGraphics();
  g.translate(120, 200);
  this.printAll(g);
  g.dispose();
p.end();
 
}
  else if(e.getSource()==打印按钮)
  { p=getToolkit().getPrintJob(this, "OK", null);
  g=p.getGraphics();  
  g.translate(120, 200);
  打印文本框.printAll(g);
  g.translate(78, 0);
  打印窗口.printAll(g);
  g.translate(66, 0);
  打印按钮.printAll(g);
  g.dispose();
p.end();
   
   
  }


  }
}



上面的程序是实现通过三个按钮实现不同的打印操作,在程序编译过后,点击按钮后,弹出打印小窗口,在打印窗口设置打印多份时,出现:份数太多,打印机无法打印,复制份数将最大设为1。而直接打印word文档时可以是任意多份,所用的是电脑自带的打印,是怎么回事?

------解决方案--------------------
Java的图形界面尽量不要搞