`

转载java实现打印功能

阅读更多
原文地址:JAVA实现打印功能作者:foxfire9527

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;

import java.awt.Toolkit;
import java.awt.print.Book;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;






public class PrintTest   implements Printable{
 
   public int print(Graphics gra, PageFormat pf, int pageIndex) throws PrinterException {
       System.out.println("pageIndex="+pageIndex);
       Component c = null;
      //print string
      String str = "中华民族是勤劳、勇敢和富有智慧的伟大民族。";
      //转换成Graphics2D
      Graphics2D g2 = (Graphics2D) gra;
      //设置打印颜色为黑色
      g2.setColor(Color.black);

      //打印起点坐标
      double x = pf.getImageableX();
      double y = pf.getImageableY();
     
      switch(pageIndex){
         case 0:
           //设置打印字体(字体名称、样式和点大小)(字体名称可以是物理或者逻辑名称)
           //Java平台所定义的五种字体系列:Serif、SansSerif、Monospaced、Dialog 和 DialogInput
           Font font = new Font("新宋体", Font.PLAIN, 9);
           g2.setFont(font);//设置字体
           //BasicStroke   bs_3=new   BasicStroke(0.5f); 
           float[]   dash1   =   {2.0f};
           //设置打印线的属性。
           //1.线宽 2、3、不知道,4、空白的宽度,5、虚线的宽度,6、偏移量
           g2.setStroke(new   BasicStroke(0.5f,   BasicStroke.CAP_BUTT,   BasicStroke.JOIN_MITER,   2.0f,   dash1,   0.0f));
           //g2.setStroke(bs_3);//设置线宽
           float heigth = font.getSize2D();//字体高度
           System.out.println("x="+x);
           // -1- 用Graphics2D直接输出
           //首字符的基线(右下部)位于用户空间中的 (x, y) 位置处
           //g2.drawLine(10,10,200,300);
         
           Image src = Toolkit.getDefaultToolkit().getImage("E:\\myworkspace\\hospital\\WebRoot\\images\\02.jpg");
           g2.drawImage(src,(int)x,(int)y,c);
           int img_Height=src.getHeight(c);
           int img_width=src.getWidth(c);
           //System.out.println("img_Height="+img_Height+"img_width="+img_width) ;
         
           g2.drawString(str, (float)x, (float)y+1*heigth+img_Height);
           g2.drawLine((int)x,(int)(y+1*heigth+img_Height+10),(int)x+200,(int)(y+1*heigth+img_Height+10));
         
           g2.drawImage(src,(int)x,(int)(y+1*heigth+img_Height+11),c);
         
         return PAGE_EXISTS;
         default:
         return NO_SUCH_PAGE;
      }
    
   }


public static void main(String[] args) {
  
    //    通俗理解就是书、文档
    Book book = new Book();
    //    设置成竖打
    PageFormat pf = new PageFormat();
    pf.setOrientation(PageFormat.PORTRAIT);
    //    通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。
    Paper p = new Paper();
    p.setSize(590,840);//纸张大小
    p.setImageableArea(10,10, 590,840);//A4(595 X 842)设置打印区域,其实0,0应该是72,72,因为A4纸的默认X,Y边距是72
    pf.setPaper(p);
    //    把 PageFormat 和 Printable 添加到书中,组成一个页面
    book.append(new PrintTest(), pf);

     //获取打印服务对象
     PrinterJob job = PrinterJob.getPrinterJob();    
     // 设置打印类
     job.setPageable(book);
   
     try {
         //可以用printDialog显示打印对话框,在用户确认后打印;也可以直接打印
         boolean a=job.printDialog();
         if(a)
         {      
         job.print();
         }
     } catch (PrinterException e) {
         e.printStackTrace();
     }
   }
   }
分享到:
评论

相关推荐

    java实现打印.rar

    这个"java实现打印.rar"压缩包包含了一些示例代码,旨在帮助开发者理解如何在Java中实现打印功能。以下是对这些示例文件及其可能涉及的知识点的详细解释: 1. **IwbFrameEmployee.java**: 这个文件很可能包含一个...

    Java实现打印功能编程资料

    Java实现打印功能

    Java实现打印功能.doc

    ### Java 实现打印功能知识点详解 #### 一、概述 在现代办公环境中,打印文档是一项基本需求。Java 提供了一套完整的打印API,允许开发者在Java应用程序中集成打印功能。本文将详细介绍如何利用Java实现打印功能,...

    记事本打印和页面设置功能Java实现

    在深入探讨具体实现之前,我们先来了解一下实现打印功能所需要的一些基础知识: 1. **`Graphics`** 类:这是Java中用于绘制的基本类,它提供了一系列的方法来处理屏幕或打印设备上的图像。 2. **`Graphics2D`** 类...

    手机实现蓝牙打印功能(java)

    J2ME 实现蓝牙打印功能 dos.write(0x1D); dos.write(0x0C); //送黑标纸至打印起始位置

    java实现针式打印机套打功能

    总之,Java和SpringBoot为我们提供了强大的工具来实现针式打印机的套打功能,无论是简单的文档打印还是复杂的多联单据处理,都能通过编程灵活控制。关键在于理解打印服务模型,正确配置打印参数,并进行充分的测试以...

    Java web 打印,Java pdf打印,Java打印

    根据提供的文件信息,本文将详细解析与Java Web打印、Java PDF打印相关的技术点及实现方法。主要内容包括: 1. Java Web打印的基本概念。...希望这些内容能够帮助你更好地理解和实现Java Web打印功能。

    Java实现条形码打印

    目前比较通用的用Java实现条形码打印的集成插件主要有:barbecue和barcode4j. 但是用barbecue,条形码可以显示出来,可是下面对应数字却不能显示出来,当然可以自己手动加上去,不过那就不是一张图片里面的了,并且...

    java打印组件非常好用的java打印组件

    Java打印组件是Java开发中用于处理打印任务的关键工具,它使得开发者能够轻松地在应用程序中实现文档和数据的打印功能。在Java中,主要通过Java Print Service API来提供打印服务,这是一个强大的接口,允许程序员...

    Java实现POS打印机无驱打印

    ### Java实现POS打印机无驱打印的关键技术点 #### 一、背景及行业需求 随着信息技术的发展,越来越多的企业开始采用数字化管理方案,特别是在餐饮业中,从前台点餐到后厨打印出单,整个流程的自动化程度直接影响着...

    Java web 打印,Java pdf打印,Java 打印

    综上所述,这个项目涉及了Java Web打印的自定义实现,利用Java技术直接调用PDF打印,而非依赖浏览器功能。开发者使用了MyEclipse作为开发工具,并可能借助了特定库如iText或PDFBox来生成和打印PDF。而“mimeograph”...

    用Java实现打印.docx

    Java语言提供了多种方式来实现打印功能,可以使用java.awt包来处理打印相关的信息,可以使用java.awt.print包来处理打印机的信息,可以使用java.awt.font包来处理字体信息,可以使用java.awt.image包来处理图像信息...

    JAVA打印机插件java打印失败打印机工具

    在Java编程环境中,打印机插件是用于实现程序与物理打印机之间的通信的重要组件。"JAVA打印机插件java打印失败打印机工具"这个标题暗示了一个问题:在尝试使用Java进行打印时遇到了失败,可能涉及到打印机插件或者...

    java实现模板下载功能

    ### Java 实现模板下载功能详解 #### 一、概述 在Web应用开发中,模板下载功能是常见需求之一,尤其在报表系统、数据导出等场景下应用广泛。本篇文章将详细阐述如何利用Java技术栈实现一个简单的模板下载功能。 #...

    java实现sdk斑马打印机打印。

    在本文中,我们将深入探讨如何使用Java SDK与斑马(Zebra)打印机进行交互,以实现文字、图片、条形码和二维码的打印功能。斑马打印机因其在工业和商业领域的广泛应用而广受赞誉,其SDK提供了丰富的功能,使得开发者...

    java实现zebra打印条形码

    本文将深入探讨如何使用Java语言实现Zebra斑马打印机的条形码打印功能。 条形码是一种图形化数据表示方式,它通过不同宽度的条和空组合来编码特定的信息,如产品代码、价格信息等。在零售、物流、仓储等领域,条形...

    JAVA的Web打印方式(PageOffice、POI、jacob,html打印等)

    JAVA的Web打印方式是指在Web应用程序中实现打印功能的各种方法和技术。本文将主要介绍使用PageOffice、POI、jacob、html打印等方式来实现Web打印。 一、使用浏览器自带的打印功能直接打印 这种方式是最直接的,...

    java实现打印效果

    自己写的一个java类,实现了界面的打印效果,现共享出来希望对大家有所帮助。

    JAVA调用zpl条码打印机打印中文打印及网络打印实例

    本实例主要探讨的是如何使用JAVA语言来调用ZPL(Zebra Programming Language)指令,实现中文字符的打印以及网络打印功能。这涉及到Java的IO操作、字符串处理以及网络通信等多个方面的知识。 ZPL是一种专门用于配置...

    Java打印小票自定义小票纸张大小,分辨率

    在Java编程环境中,进行小票打印时,我们经常会遇到需要自定义小票纸张大小和分辨率的需求。这通常涉及到对打印机API的...通过理解并实践这些步骤,你就能成功地实现Java环境下自定义小票纸张大小和分辨率的打印功能。

Global site tag (gtag.js) - Google Analytics