当前位置:  技术问答>java相关

如何在一页纸上分次打印?

    来源: 互联网  发布时间:2015-09-23

    本文导语:  我用printable实现了打印的功能,但每调一次print方法打印机就会换一次纸。现在的问题是我需要一次只打印一行数据,一页纸打满以后再换纸,请问如何实现?请各位高手务必帮忙,分数不成问题,我有4000多份可用。...

我用printable实现了打印的功能,但每调一次print方法打印机就会换一次纸。现在的问题是我需要一次只打印一行数据,一页纸打满以后再换纸,请问如何实现?请各位高手务必帮忙,分数不成问题,我有4000多份可用。

|
如果你是要在连本地PC的打印机上输出的话,可以不使用printable ,直接对PC的并口输出,就能达到你要的效果。

如果不是,你可以在方法:
print(Graphics g, PageFormat format, int pageIndex) 中对pageIndex 参数和方法的返回值 return Printable.PAGE_EXISTS 做修改。 改变方法的返回值可能会使得在下次print被调用时,影响pageIndex 的值。我没试过,你试试吧。

|
在Java内,实现打印要用到两个类:PrinteJob 和 实现Printable 接口的类。
打印的关键在于Printable接口的Print方法的实现。你可以把你要打印的文本
全部画到图形环境上,再打印。

看看下面的代码,但愿能给你一些帮助:

 public int print(Graphics g, PageFormat pf, int page)
      throws PrinterException
   {  if (page >= 1) return Printable.NO_SUCH_PAGE;
      Graphics2D g2 = (Graphics2D)g;
      g2.setPaint(Color.black);
      g2.translate(pf.getImageableX(), pf.getImageableY());
      g2.draw(new Rectangle2D.Double(0, 0,
         pf.getImageableWidth(), pf.getImageableHeight()));

      drawPage(g2);
      return Printable.PAGE_EXISTS;
   }

   public void drawPage(Graphics2D g2)
   {  FontRenderContext context = g2.getFontRenderContext();
      Font f = new Font("Serif", Font.PLAIN, 72);
      GeneralPath clipShape = new GeneralPath();

      TextLayout layout = new TextLayout("Hello", f, context);
      AffineTransform transform
         = AffineTransform.getTranslateInstance(0, 72);
      Shape outline = layout.getOutline(transform);
      clipShape.append(outline, false);

      layout = new TextLayout("World", f, context);
      transform
         = AffineTransform.getTranslateInstance(0, 144);
      outline = layout.getOutline(transform);
      clipShape.append(outline, false);

      g2.draw(clipShape);
      g2.clip(clipShape);

      final int NLINES =50;
      Point2D p = new Point2D.Double(0, 0);
      for (int i = 0; i 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.print类docflavor的类成员方法:服务格式化打印数据定义及介绍
  • (急,改天请吃饭,谢)如何把jsp页面的打印按纽关联到IE的打印功能或如何用简单的实现打印页面
  • Linux c字符串中不可打印字符转换成16进制
  • 用applet实现打印,除了弹出系统自带的打印对话框,在自其前后各弹出一个”小应用程序需打印,要继续吗?“的对话框,如何去掉这两个对话
  • java命名空间javax.print类docflavor的类成员方法:客户端格式化打印数据定义及介绍
  • UNIX下如何通过并口,驱动打印机打印格式文件
  • [debian]打印机装好了,但是打印不了,怎么检查是哪里的问题呢?
  • 打印高手请进:如何得到当前正在打印的页数
  • printFinal打印插件-基于jQuery-支持打印预览 printFinal
  • 如何能够只打印,页面上的表格,页面上的上一页,下一页,还有按钮不打印
  • redhat9 如何连接到xp上共享的打印机来打印?
  • 有谁在linux串口下用ESCPOS指令控制打印机打印,碰到问题,请赐教
  • 请问UNIX系统下装上WINDOWS的打印机驱动程序,可否打印?
  • Solaris打印,lp 命令打印有长行的文本文件时后半段被截掉了,怎么办? 急!!!!!!!!!!!!!!!!!!!
  • 如何配置linux,使windows系统可以直接打印到linux的打印机上??
  • jsp页面中如何打印格式报表(不是打印页面内容)?
  • 模拟打印机排队打印效果
  • 论坛 iis7站长之家
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请问如何在Unix C程序中使用打印控制码?(已有打印机使用手册)
  • 各位打印过PDF文档吗?我打印的时候,经常打出乱码来,比如don't就会变成乱码,还有其它非英文字符也会变成乱码,有解决方法吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3