java book打印机_java实现的打印机打印1

//设置打印属性 构造一个新的空打印请求属性集。

PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();

pras.add(new Copies(3));//打印份数,3份

//设置打印数据的格式DocFlavor.BYTE_ARRAY.PNG MIME 类型 = "image/png",打印数据表示形式类名 = "[B"(byte 数组)的 DocFlavor。

DocFlavor flavor = DocFlavor.BYTE_ARRAY.PNG;

//查找所有符合条件的打印服务 lookupPrintServices(flavor, pras);查找能够打印指定 DocFlavor 的 PrintService。

PrintService[] printService = PrintServiceLookup.lookupPrintServices(flavor, pras);

//将所有查找出来的打印机与自己想要的打印机进行匹配,找出自己想要的打印机

LookUpPrint p=new LookUpPrint();

PrintService myPrintService = p.GetPrintService("printName");

//PrinterJob 类是控制打印的主要类。应用程序调用此类中的方法设置作业、(可选地)调用与用户的打印对话框,然后打印作业的页面。

//getPrinterJob() 创建并返回初始化时与默认打印机关联的 PrinterJob。 打印任务

PrinterJob job = PrinterJob.getPrinterJob();

//setPrintService(PrintService service) 将此 PrinterJob 与新的 PrintService 关联。 把任务挂到服务上

job.setPrintService(myPrintService);

//PDDocument 这是PDF文档的内存中表示。当不再需要文档时,必须调用#close()方法。

//load(File file) 解析一个PDF。不受限制的主存将用于缓冲PDF流。

PDDocument document = PDDocument.load(new File("printPath"));//将PDF文档解析为PDF流存入到内存中

//Paper 类描述一张纸的物理特征。

Paper paper = new Paper();

paper.setSize(252, 141); // 1/72 inch //设置此 Paper 对象的宽和高,它表示要用来打印的页面的属性。

paper.setImageableArea(0, 5, paper.getWidth(), paper.getHeight());

// setImageableArea:设置此 Paper 的可成像区域。可成像区域是页面上用来打印的区域。 左上角的 X 坐标,Y 坐标,区域宽度,高度

//PageFormat 类描述要打印的页面大小和方向。

PageFormat pageFormat = new PageFormat();

pageFormat.setPaper(paper);//为此 PageFormat 设置 Paper 对象

//Book 类提供文档的表示形式,该文档的页面可以使用不同的页面格式和页面 painter。此类使用 Pageable 接口与 PrinterJob 交互。

Book book = new Book();

//将多个页面追加到此 Book 的尾部。

book.append(new PDFPrintable(document), pageFormat, document.getNumberOfPages());

//查询 document,以获得页面数和 Pageable 实例 document 中保存的每个页面的 PageFormat 和 Printable。

job.setPageable(new PDFPageable(document, Orientation.PORTRAIT));

job.setPageable(book);

//打印一组页面。

job.print();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值