主  题:  写个打印票据的小程序,不知如何能把上边距设小点  
作  者:  mineratjbtax ()  
等  级:    
信 誉 值:  97  
所属社区:  Java J2EE / EJB / JMS  
问题点数:  20  
回复次数:  0  
发表时间:  2006-05-18 15:44:26  
   
 
   
写个打印票据的小程序,不知如何能把上边距设小点,缺省值总是1英吋,代码如下:
    if (printStr != null && printStr.length() > 0) { //当打印内容不为空时             
         PrinterJob myPrtJob = PrinterJob.getPrinterJob(); //获取默认打印作业          
         PageFormat pageFormat=myPrtJob.pageDialog(myPrtJob.defaultPage());
这样写每次pageDialog()都会弹出对话框让用户手工把上边界改小很麻烦,我不知有没办法
在程序中设定上边界这个参数。我在print()中试过这样:
 Graphics2D g2 = (Graphics2D) g;
        g2.setPaint(Color.black); //设置打印颜色为黑色
        if (page >= PAGES) //当打印页号大于需要打印的总页数时,打印工作结束
            return Printable.NO_SUCH_PAGE;        
         g2.translate(pf.getImageableX(),36.0 /* pf.getImageableY() */); //在此处
把pf.pf.getImageableY()即缺省上边距1英吋72.0,改小为36.0,打印出来文字整体是上移了但上边半共同英吋的文字也就打不出来  :-) 不知有何方法请指点呵呵  

解决方案 »

  1.   

    你用的打印方法已经过时了,现在应该用J2SE 1.4以后的Java Print API
    可以参考我网站上的文章:
    http://cedar.peng.googlepages.com/home   --> 2006-05 Java Print APD Study (pdf)也可以从java.sun.com上下载:
    Java™ Print Service API User Guide
      

  2.   

    增加一个XML文件保存默认打印配置,打印时读取配置,设定时保存配置,这样既保证了软件的灵活性,又不会显得操作麻烦(需要的时候才去改配置嘛)。