qiyongjun你好,谢谢你好回答,可我还是不太明白,你能帮我说明白一些吗?谢谢!
   你的这句话不明白"最好设定为用户可以自己按照自己的打印机驱动来选择打印方式"
你指的是不是这句话"printerJob.printDialog();" 呢?有一个对话框来设置打印呢? 
   我的打印程序是这样子设置的,
      //开始打印
public void doPrint()
{
printerJob.setPageable(myPageable);//打印的内容
if(printerJob.printDialog())//打印对话框
{
try
{
printerJob.print();//调用下面的print()去打印
}
catch(Exception e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(this,"打印出错","错误",JOptionPane.ERROR_MESSAGE);
return;
}
}
public int print(Graphics g,PageFormat pageFormat,int pages)throws PrinterException
{
if(pages>pageRange)
return NO_SUCH_PAGE;
int x = (int)pageFormat.getImageableX() + 1;
int y = (int)pageFormat.getImageableY() + 1;
g.translate(x,y);
RepaintManager currentManager = RepaintManager.currentManager(this);
currentManager.setDoubleBufferingEnabled(false);
this.paint(g);
currentManager.setDoubleBufferingEnabled(true);
return(PAGE_EXISTS); }     在打印第二页数据的时候,它会空出半页纸,才开始打印,它要到第三页纸的时候才打印完第二页的数据,第三页纸的下半页,也会空出来.会在第四页纸的时候才开始打印第三页的数据.第四页纸能很好的把第三页的数据打印出来.在激光打印机上没有这样的问题出现呀,你说奇怪不奇怪.请你指点,在此谢过!
}

解决方案 »

  1.   

    这种情况如果激光打印机打出来的效果正常,那么一般就和java关系不大了。
      

  2.   

    那针式打印机是比较老了,是不是要更新它的驱动呀,不过我的系统是win2000的呀,应该能够驱动吧!
      

  3.   

    win2000自带的驱动也不怎么“新鲜”了,到打印机厂商网站砰砰运气吧。
      

  4.   

    但是在那一台打印机上试了另一个java的打印程序,是没有问题的呀,为什么呀谁进一步的帮我分析一下呢?谢谢!