使用Java的PrinterJob实现调用打印机打印

首先我们在使用打印机的话我们需要得到我的这个相关的一些数据,然后我们需要实例化我的这个book对象,这个book对象主要是把我的这个paperFormat对象和我的这个实体类数据的对象放入到我的这个book对象当中,那么我的paperFormat主要是用来设置我的这个打印机打印的顺序,那么说到顺序他一共有三种顺序,第一种就是从下到上从左到右打印,第二种就是从上到下从左到右的方向打印,第三章就是从上到下,从右到左的方向打印,相关的底层源代码如下

 设置完我的这个打印方向了之后,我就需要实例化一个Paper对象,这个对象主要是用来设置我的这个纸张的大小和我需要打印字体的打印区域以及字与字体的行距与间距设置完之后paperFormat的这个对象里面有个setPaper的属性,他专门就是用来把Parper对象存入的,来获得我的这个打印纸张的具体信息,这下我们的这个paperFormat已经没问题了之后按照上面所说的把我这个paperFormat和实体类在这里需要特别注意一下,我的这个实体类需要强制转换成Printable类型,放到book对象中,其次到了我们最关键的时候了,那就是用来获取我的这个打印服务对象,我们必须要得到这个对象去获得我的这个打印驱动,那么如何得到呢,通过Parinter.getPrinterJob()得到我的这个打印机驱动对象PrinterJob,然后得到我的这个驱动对象我们就把我们刚刚设置好的book对象放入到这个PrinterJob中的setPageable的属性当中,最终我们使用PrinterJob对象去调用print()方法,这个print()会抛出一个PrinterException的异常,我们需要去捕捉一下即可,去链接打印机打印,具体代码如下:

package com.prints;
import com.printsActual.pojo.CheckGroup;

import java.awt.print.*;
public class prties {
    /**
     * 订单信息 实体类
     */
    private CheckGroup checkGroup;

    /**
     * 带参构造方法,把我的这个订单信息传入到打印机工具类
     * @param checkGroup
     */
    public prties(CheckGroup checkGroup) {
        this.checkGroup = checkGroup;
    }
    /**
     * 开始打印的方法
     */
    public void printer() {
        try {
            //Book 类提供文档的表示形式,该文档的页面可以使用不同的页面格式和页面 painter
            Book book = new Book(); //要打印的文档

            //PageFormat类描述要打印的页面大小和方向
            PageFormat pf = new PageFormat();  //初始化一个页面打印对象
            pf.setOrientation(PageFormat.PORTRAIT); //设置页面打印方向,从上往下,从左往右

            //设置打印纸页面信息通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。
            Paper paper = new Paper();//调用我的这个纸面的对象
            paper.setSize(226, 700);// 纸张大小
            paper.setImageableArea(0, 0, 226, 700);// A4(595 X 842)设置打印区域,其实0,0应该是72,72,因为A4纸的默认X,Y边距是72
            pf.setPaper(paper);

            book.append((Printable) checkGroup, pf);//把我的这个纸张大小和我的这个数据的实体类传入到我的这个打印对象当中
            PrinterJob job = PrinterJob.getPrinterJob();   //获取打印服务对象,先安装打印机驱动

            job.setPageable(book);  //设置打印类

            job.print(); //开始打印
        } catch (PrinterException e) {
            e.printStackTrace();
        }
    }
}

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java中,可以使用Java打印API来调用打印机进行打印。下面是一个简单的示例代码,演示如何在Java程序中调用打印机进行打印: ```java import java.awt.print.PrinterJob; import javax.print.PrintService; import javax.print.PrintServiceLookup; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; import javax.print.attribute.standard.Copies; public class PrintDemo { public static void main(String[] args) { // 获取打印服务 PrintService service = PrintServiceLookup.lookupDefaultPrintService(); // 构造打印请求属性集 PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); pras.add(new Copies(1)); // 打印份数 // 获取打印作业 PrinterJob job = PrinterJob.getPrinterJob(); job.setPrintService(service); // 设置打印服务 job.setPrintable(new MyPrintable()); // 设置打印内容 try { job.print(pras); // 进行打印 } catch (Exception e) { e.printStackTrace(); } } } // 打印内容 class MyPrintable implements Printable { public int print(Graphics g, PageFormat pf, int pageIndex) { if (pageIndex > 0) { return NO_SUCH_PAGE; } // 打印内容 Graphics2D g2d = (Graphics2D) g; g2d.drawString("Hello World!", 100, 100); return PAGE_EXISTS; } } ``` 在上述代码中,我们首先获取了默认的打印服务,然后构造了打印请求属性集,包括打印份数等信息。接着,我们获取了打印作业,并设置打印服务和打印内容。最后,调用`job.print(pras)`方法进行打印

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值